[英]View Controller not loading Storyboard View
我是iOS開發的新手。 我有一個帶有2個視圖控制器的故事板,我將它們鏈接到UIViewController類,它在我嘗試從第一個類加載第二個類時起作用(就像進入主菜單的啟動畫面)但是'菜單'沒有從故事板加載視圖。 它加載黑屏。 我已經將類分配給了故事板右側邊欄中的viewcontroller,並將屏幕變為紅色以查看它是否加載了類,但是如果我將紅色輸出,它會加載黑屏,而不是所需的屏幕從故事板。
屏幕1(Splash)的代碼:
func switchScreen() {
let secondViewController:vcMainLogin = vcMainLogin()
self.presentViewController(secondViewController, animated: true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "switchScreen", userInfo: nil, repeats: false)
}
屏幕2(登錄/菜單)的代碼:
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.redColor()
// Do any additional setup after loading the view.
}
它正在加載,因為屏幕的顏色變為紅色,但當我拿出它時,它會加載黑色,而不是故事板中的屏幕。
您需要從故事板中實例化視圖控制器,而不是通過初始化函數創建它。 為此,您需要在界面構建器(視圖 - >實用程序 - >身份檢查器)中為視圖控制器分配storyboardID。 在這個例子中,我從名為“MainStoryboard”的故事板中加載一個故事板ID為“VC2”的視圖控制器。
let mainStoryboard = UIStoryboard(name: "MainStoryboard", bundle: NSBundle.mainBundle())
let vc : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("VC2") as UIViewController
這是等效的Objective-c代碼供參考
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"mainStoryboard" bundle:[NSBundle mainBundle]];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"VC2"];
我還不習慣斯威夫特。 但是,它看起來好像你只是加載一個全新的mcMainLogin視圖控制器,而不是從一個nib文件初始化它或從故事板加載它。 當然它會是空的(黑色)。
回到引用或等待有Swift經驗的人告訴你如何從故事板加載視圖控制器。
如果以編程方式創建所有視圖控制器並以編程方式進行導航,則根本不需要故事板。 您可以更好地遵守故事板概念,包括導航至少90%以上的導航事件或使用個性化的nib / xib文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.