Setting RootViewController in Appdelegate
Solution 1
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()
Solution 2
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")
}
}
Solution 3
After setting self.window?.rootViewController = testob, you have to do the following
[self.window makeKeyAndVisible]
Also, initialize the viewController from storyboard using appropriate method
Harshavardhan
Updated on June 14, 2022Comments
-
Harshavardhan almost 2 years
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.eIs 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.eIs Initial View Controller
in storyboard every thing works.Is there any solution to do so?