I have storyboard in my application, but i don't want to set the Main storyboard file base name
in info.plist, as well as I don't want to set the entry point i.e Is Initial View Controller
in storyboard for any viewcontroller scene.
Though I want to launch the app with some scene from the storyboard, but all shows me a black screen.
When I tried
let testob:testClass = testClass()
self.window?.rootViewController = testob
in AppDelegate, it didn't worked and got the same black screen.
But when I set the Main storyboard file base name
in info.plist, and the entry point i.e Is Initial View Controller
in storyboard every thing works.
Is there any solution to do so?
You need to instantiate the window and make it key and visible.
let bounds = UIScreen.main.bounds
self.window = UIWindow(frame: bounds)
self.window?.rootViewController = rootViewController
self.window?.makeKeyAndVisible()
You can load a particular view controller from storyboard.
See this answer.
Example:
window?.rootViewController = initialViewController()
where
private func initialViewController() -> UIViewController {
if isUserLoggedIn {
return UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoadingViewControllerIdentifier")
} else {
return UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("HomeViewControllerIdentifier")
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With