0

我有一个用于收件箱的导航控制器。当您单击表中的一条消息时,它会转到一个详细视图,该视图正在通过我的 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'
4

2 回答 2

0

您是否在 newmessageController 类中正确声明和合成了“主题”?

我不明白的是,如果您有两个不同的 segues 一个到特定的 ViewController(一个用于新消息,另一个用于查看现有消息的详细信息),或者您正在重用相同的 newmessageController。

于 2013-04-22T22:48:39.580 回答
0

一种常见的做法是检查标识符的转场,以确保您“准备”的转场是您想要的。您可能需要进行此检查以确保您的 prepareForSegue: 不会被多次调用或从您不期望/不打算的地方调用。

于 2013-04-22T22:53:12.060 回答