2016-07-13 19 views
0

我有一個詳細視圖控制器,我想將標籤文本設置爲使用indexPath行從數組中取得的值。意外地發現無IBOutlet prepareForSegue

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if(segue.identifier == "showView"){ 
     let detailVC: DetailViewController = segue.destinationViewController as! DetailViewController 
     let indexPath = self.MainTableView.indexPathForSelectedRow! 
     detailVC.label.text = "Test" 
     self.MainTableView.deselectRowAtIndexPath(indexPath, animated: true) 
     } 
} 

我不斷收到一個致命錯誤:意外地發現零,同時展開一個可選的值。我曾嘗試將detailVC.label.text = "Test"切換爲detailVC.label.text = names[indexPath.row],但每次都會收到相同的錯誤。

我用相同的代碼行來改變單元格的標籤文本,沒有任何錯誤,但對於這個標籤在一個空白視圖的中心,我似乎無法得到它的權利?有什麼需要改變的想法?

順便說一句,在詳細視圖控制器標籤是@IBOutlet weak var label: UILabel!

+0

您是否嘗試過將屬性添加到目標視圖控制器併爲其指定文本的值,並將該標籤指定給viewDidLoad或viewWIllAppear中的文本? – WMios

+0

你在哪裏得到意外發現的零誤差? –

+0

@AlessandroOrrù在控制檯 –

回答

3

您不能訪問IBOutlet S的DetailViewControllerprepareForSegue,因爲他們還沒有連接。

正如在評論中提到創建DetailViewController一個String財產,在prepareForSegue設置,並設置標籤的text財產viewDidLoadDetailViewControllerviewWillAppear

+0

謝謝!這應該工作 –

+1

不應該,會;-) – vadian

相關問題