2016-03-18 52 views
2

設置RootViewController的我有故事板在我的應用程序,但我不希望設置Main storyboard file base nameinfo.plist中,以及我不想設定的入口點即Is Initial View Controller故事板適用於任何視圖控制器場景。中的appdelegate

儘管我想從故事板中的某個場景啓動應用程序,但都顯示爲黑屏。

當我試圖

let testob:testClass = testClass() 
self.window?.rootViewController = testob 

在AppDelegate中,它沒有工作,並得到了相同的黑屏。

但是,當我在info.plist中設置Main storyboard file base name,並且故事板中的入口點即Is Initial View Controller每件事情都有效。

有沒有解決方案呢?

+0

請檢查以下鏈接是否適合您:http://stackoverflow.com/questions/26514028/programatically-setting-root-view-controller-in-swift – Ujjwal

回答

2

您可以從故事板加載特定的視圖控制器。

請參閱this answer

?例如:

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") 
     } 
    } 
0

設置self.window .rootViewController = testob後,你必須做以下

[self.window makeKeyAndVisible] 

此外,初始化故事板中的viewController使用適當的方法

1

您需要實例化窗口並將其設置爲關鍵且可見。

let bounds = UIScreen.main.bounds 
self.window = UIWindow(frame: bounds) 
self.window?.rootViewController = rootViewController 
self.window?.makeKeyAndVisible()