I wanted to open a Facebook Group page in the Facebook app on my iPhone but I was getting that error since I did not have any LSApplicationQueriesSchemes in my Info.plist file.
This is the code
let fbPage = "fb://profile/" + FB_GROUP_ID // Your Facebook group id e.g 8794808798015
let fbURL = URL(string:fbPage)
let canOpenURL = UIApplication.shared.canOpenURL(fbURL!)
if (canOpenURL) {
UIApplication.shared.open(fbURL!, completionHandler: nil)
}
After adding ‘fb’ in my scheme it solves the issue.
I was having this issue when setting a new rootViewController from loginViewController , which was a rootViewController in the storyboard before the transition.
I was not sure what was the problem. Since this works perfect on iOS 13 if I don’t use the [UIView transitionFromView] but I wanted to keep the animation effect, it looked good.
I decided to made a simple trick, by using a dummy view. Which solved this problem.
instead of using homeViewController.view we use dummy view for the animation and white as its background, otherwise you will see black background between transitions.
I was trying to build a simple app in iOS + SwiftUI with multiple views that uses NavigationView and NavigationLink.
This app is very simple and uses a model to navigate between destinations. Enum ViewType tracks all the destinations. If you want to have another view, View4, just add a new case in ViewType enum.
struct Menu: Identifiable {
var id = UUID()
var name: String
var image: String
var destination: ViewType
}
enum ViewType {
case home
case view1
case view2
}
Our all views must have a property with menu type
struct HomeView: View {
var menu: Menu
var body: some View {
Text("Home View")
}
}
Our MasterView which is the main view in root ContentView. Also, we added HomeView as our default view here.
var body: some View {
NavigationView {
MasterView()
.navigationBarTitle(
Text("Navigation Demo")
)
HomeView(menu: Menu(name:"Home", image:"image", destination: .home))
}.navigationViewStyle(DefaultNavigationViewStyle())
}
In our MasterView we have an array of Menu with title and destination view case, which populated in a list view.
let view1 = Menu(name:"Home", image:"image", destination: .home)
let view2 = Menu(name:"View 1", image:"image", destination: .view1)
let view3 = Menu(name:"View 3", image:"image", destination: .view2)
var body: some View {
let menus: [Menu] = [view1, view2, view3]
return List {
ForEach(menus) { menu in
self.destinationView(menu: menu)
}
}
}
function destinationView return a NavigationLink based on what item you choose on the list and take the user to the expected view.