簡體   English   中英

View Controller未加載Storyboard View

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

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