これが私の状況です。私は2つのテーブルビューを持っています。1 つのビューで 2 つのテーブルビューを操作する方法を検索した後、2 つの追加のコントローラーを作成するソリューションにたどり着きました。つまり、tbl1DatasourceDelegate と tbl2DatasourceDelegate です。セルをプッシュすると、別のviewControllerに移動するはずです。tbl1DatasourceDelegate にこのコードがあります。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
PlayerNews *news = [_tableSource objectAtIndex:indexPath.row];
PlayerDetailController *detail =[[PlayerDetailController alloc]init];
[detail setNewsItem:news];
}
したがって、Cell を選択すると、playerNewsObject を作成し、2 つのテーブルビューを含むコントローラーに送り返します。2 つのテーブルビューを含むコントローラーに戻ったとき。(私がセグエしているコントローラー) 関数setNewsItemを実行しますここにコードが表示されます。
-(void)setNewsItem:(PlayerNews *)newsItem{
if(![_newsItem isEqual:newsItem]){
_newsItem = newsItem;
}
NSLog(@"Player detail controller newsItem object: %@", _newsItem);
[self performSegueWithIdentifier:@"PlayerDetailNews" sender:tblNews];
}
テーブルビューにプッシュした newsItem がログに表示されるため、このコードが実行されます。しかし、それに続くことはありません。次のprepareForSegueを使用しています。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"comes in this segue");
// ask NSFRC for the NSMO at the row in question
if ([segue.identifier isEqualToString:@"PlayerDetailNews"]) {
[segue.destinationViewController setImageURL:[NSURL URLWithString:_newsItem.image]];
[segue.destinationViewController setNewsTitle:_newsItem.title];
[segue.destinationViewController setNewsDescription:_newsItem.content];
[segue.destinationViewController setNewsCopy:_newsItem.image_copyright];
[segue.destinationViewController setNewsUrl:_newsItem.url];
[segue.destinationViewController setNewsShortDescription:_newsItem.summary];
}
}
ログを出力しないため、このメソッドには含まれません。次のエラーでクラッシュします。
** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<tblPlayerNewsDatasourceDelagete: 0x1e5e44c0>) has no segue with identifier 'showPlayerDetailNews''
誰でも私を助けることができますか?
ありがとうございました