2013-04-22 84 views
0

我有一個收件箱的導航控制器。當你點擊表格中的消息時,它會轉到一個詳細視圖,通過prepareForSegue方法獲取數據。prepareForSegue將不起作用

我在頂部有一個欄按鈕「組成」一條新消息。

該按鈕一直工作,直到我把prepareForSegue方法放進去,現在按下按鈕時它會崩潰。我調試它,它說這是因爲prepareForSegue方法。我可以點擊桌面視圖中的消息,它會轉到詳細視圖並正確顯示所有信息,但該按鈕現在不起作用。

下面是prepareForSegue代碼:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    NSIndexPath *indexPath = [self.tableView indexPathForCell:sender]; 

    messageDetails * dvc = segue.destinationViewController; 

    messages * currentMessage = [messagesArray objectAtIndex:indexPath.row]; 
    dvc.subject = currentMessage.subjectMessage; 
    dvc.body = currentMessage.bodyMessage; 
} 

我收到錯誤:

2013-04-22 18:24:22.107 GreekConnect[3904:c07] -[newmessageController setSubject:]: unrecognized selector sent to instance 0x7558f30 
2013-04-22 18:24:22.108 GreekConnect[3904:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[newmessageController setSubject:]: unrecognized selector sent to instance 0x7558f30' 
+1

您是否檢查過dvc是什麼類型的對象?這可能非常簡單,因爲您不需要在要導航的視圖控制器上設置該類。 – 2013-04-22 22:42:57

回答

0

一個常見的做法是,您檢查標識符以確保您正在「準備」的繼續是您想要的。您可能希望進行此檢查,以確保您的prepareForSegue:不會被多次呼叫或來自您不期望/打算的地點。

+0

工作正常!需要一個if語句來檢查標識符。我有兩個賽段的視圖控制器,所以我猜測它很困惑! – Bucktown 2013-04-22 23:05:21

0

你有沒有「主題」正確聲明,並在您newmessageController類合成的?

我不明白的是,如果你有一個特定的ViewController(一個用於新的消息,另一個用於查看現有的細節)或者你正在重複使用同一個newMessageController。