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 クラスで「件名」が正しく宣言され、合成されていますか?

私が理解できないのは、特定の ViewController (新しいメッセージ用と既存のメッセージの詳細を表示するため) に対する 2 つの異なるセグエがある場合、または同じ newmessageController を再利用している場合です。

于 2013-04-22T22:48:39.580 に答える
0

一般的な方法は、セグエの識別子をチェックして、「準備」しているセグエが意図したものであることを確認することです。このチェックを入れて、 prepareForSegue: が複数回呼び出されたり、予期しない/意図しない場所から呼び出されたりしないようにすることができます。

于 2013-04-22T22:53:12.060 に答える