2013-04-22 46 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。