2014-09-30 47 views
1

我有一個UITableViewController,它通過一個故事板將靜態單元嵌入到普通的ViewController中。這是一直按預期工作。但是,當我想要在單擊嵌入的tableview上的單元格時準備好segue時,應用程序崩潰而沒有真正的錯誤。Swift中嵌入式tableView中的segue準備工作

我有一個嵌入式UITableViewController,TableViewVC和它嵌入的類RootVC的類。我想實現該方法:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?); 

我在我的TableViewVC中的特定靜態單元格創建了故事板中的segue。當我在TableViewVC中實現這個方法時,它永遠不會被調用。它確實在RootVC中調用,但是當我嘗試訪問segue.identifier屬性時崩潰。當我在這裏調試應用程序,我可以看到,類型是SEGUE的是:

UIStoryboardEmbedSegue 

有誰知道我可以爲這個賽格瑞適當準備和訪問標識符屬性知道被點擊什麼電池?

編輯:錯誤的截圖:http://cl.ly/image/2z031b2B3i0o

+0

當應用程序崩潰時發佈Xcode的屏幕截圖。 – 2014-09-30 06:13:50

回答

2

UIStoryboardEmbedSegue用於ViewControllers中的嵌入關係。它正在建立您的RootVC和TableVC之間的父子關係。它崩潰是因爲你沒有選擇這個特定賽段的標識符。如果您對嵌入關係不感興趣,則不應該在RootVC中重寫此函數。

它看起來像你沒有正確設置從你的細胞segue。如果您發佈故事板的圖片,我們可以看看。

另一種方法是通過控件從故事板中VC頂部的黃色VC圖標拖動到您想要的目標,從TableVC(不是單元格)設置一個segue。然後在didSelectRow中以編程方式執行segue。

+0

這確實是個問題。我停止嘗試使用故事板,並使用您提到的didSelectRow方法修復它。非常感謝! – 2014-10-02 06:00:29

1

我也有類似的問題。如果故事板中的標識符爲空,則不能訪問segue.identifier

+0

我的故事板中的segue肯定有一個標識符。我嘗試刪除賽格,清理項目並再次添加。 – 2014-09-30 06:51:59