我有一個TableViewController
,我想在其導航欄中觸發一個segue。我在故事板中創建了我的新作品ViewController
。但是,如果我單擊欄按鈕項目,視圖不會出現。儘管已觸發了Segue,ViewController仍未顯示
相反,酒吧按鈕項目變爲無效(灰色),應用程序凍結。沒有錯誤消息,應用程序也不會崩潰。在我TableViewController
也prepareForSegue
方法被調用
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
print("prepare for segue called")
print("destination view controller = \(segue.destinationViewController.description)")
}
我做了以下幾件事:
- 創建的第二個屏幕自定義視圖控制器類(在我的故事板和作爲.swift文件)。我分配在故事板各自的
ViewController
到我的自定義視圖控制器的身份檢查 - 爲按鈕單擊事件創建
IBAction
並引發 的SEGUE編程。結果保持不變。prepareForSegue
被調用。destionationViewController
正確 但沒有顯示。之後我刪除了這個IBAction
。
我的目標視圖控制器看起來像這樣
class EnterUserDataViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("EnterUserDataViewController viewDidLoad called")
}
}
viewDidLoad
永遠不會,即使正確SEGUE已觸發調用。
有人可以給我一個暗示爲什麼發生這種情況?
你的截圖是否與你的實際代碼相匹配?你說你正在使用動作插座手動觸發segue,但是你的屏幕顯示標籤欄按鈕直接觸發了segue。 – tebs1200
不,我認爲我可以做錯事。然後我嘗試以編程方式觸發Segue。所以我創建了一個IBAction並調用了performSegueWithIdentifier。然而這並沒有幫助。所以我刪除了這個IBAction並使用了一個正常的「拖放」繼續。提出你的問題:是的。 – slashburn
在這個問題上的任何更新?你能解決它嗎? @slashburn –