簡體   English   中英

在Appdelegate中設置RootViewController

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM