0

エラーは次のとおりです。

2013-04-02 14:46:07.180 ECom[7855:c07] -[UITableViewController setItemRow:]: unrecognized selector sent to instance 0x768c770
2013-04-02 14:46:07.180 ECom[7855:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setItemRow:]: unrecognized selector sent to instance 0x768c770'

メソッド int のコードの最後の行:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"clPanelSegue"])
    {
        NSIndexPath *path = [self.tableView indexPathForSelectedRow];
        ECOMClPanelDetailViewController *detail = (ECOMClPanelDetailViewController*)segue.destinationViewController;
        NSLog(@"clPanelSeguePathRow = %d", path.row);
        [detail setItemRow:path.row];
    }
}

そして最後の行のメソッドは

-(void)setItemRow:(int)aItemRow
{
    clDetailItemRow = aItemRow;
}

何が悪いのか理解できません。誰が助けることができますか?

4

2 に答える 2

2

まず、あなたの詳細パネルはあなたが思っているものではないようです。エラー メッセージに基づいて、seque.destinationViewControllerは クラスUITableViewControllerであり、 ではありませんECOMClPanelDetailViewController。それはあなたが最初に追跡する必要があるものです。

第二に、このため、setItemView:メッセージを送信すると解釈できず、例外が発生します。

`destinationViewController がインスタンス化されている場所 (おそらく XIB ファイル) を確認することから始めて、適切なクラスが設定されていることを確認します。

于 2013-04-02T10:58:26.500 に答える
1

これdetailは ECOMClPanelDetailViewController ではなく、UITableViewController を指しています。ストーリーボードでセグエの識別子をチェックして、識別子名を間違えていないことを確認できます。

于 2013-04-02T10:58:29.167 に答える