![](/img/trans.png)
[英]XCode 9: Setting RootViewController in AppDelegate causes black screen after launching the application
[英]Setting RootViewController in Appdelegate
我在我的應用程序中有故事板 ,但我不想在info.plist中設置Main storyboard file base name
,以及我不想設置入口點,即任何viewcontroller場景的故事板中的 Is Initial View Controller
。
雖然我想用故事板中的一些場景啟動應用程序,但所有人都向我顯示黑屏。
當我嘗試
let testob:testClass = testClass()
self.window?.rootViewController = testob
在AppDelegate中,它沒有工作,並獲得相同的黑屏。
但是當我在info.plist中設置Main storyboard file base name
,並且入口點即故事板中的Is Initial View Controller
,每件事都有效。
有沒有解決辦法?
您需要實例化窗口並使其鍵和可見。
let bounds = UIScreen.main.bounds
self.window = UIWindow(frame: bounds)
self.window?.rootViewController = rootViewController
self.window?.makeKeyAndVisible()
您可以從故事板加載特定的視圖控制器。
看到這個答案 。
例:
window?.rootViewController = initialViewController()
哪里
private func initialViewController() -> UIViewController {
if isUserLoggedIn {
return UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoadingViewControllerIdentifier")
} else {
return UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("HomeViewControllerIdentifier")
}
}
設置self.window?.rootViewController = testob后,您必須執行以下操作
[self.window makeKeyAndVisible]
此外,使用適當的方法從storyboard初始化viewController
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.