iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company’s mobile devices, including the iPhone and iPod Touch; the term also included the versions running on iPads until the name iPadOS was introduced with version 13 in 2019. It is the world’s second-most widely installed mobile operating system, after Android. It is the basis for three other operating systems made by Apple: iPadOS, tvOS, and watchOS. It is proprietary software, although some parts of it are open source under the Apple Public Source License and other licenses.
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.