セルをクリックして日付を DetailViewController に転送しようとすると、セグエに問題があります
質問に対する回答が見つからなかったので、ここで質問します。
これが私の方法です:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// NSLog(@"Source Controller = %@", [segue sourceViewController]);
// NSLog(@"Destination Controller = %@", [segue destinationViewController]);
// NSLog(@"Segue Identifier = %@", [segue identifier]);
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
if (indexPath){
lastNews *item = [news objectAtIndex:indexPath.row];
[segue.destinationViewController setDetail:item];
NSLog(@"%@", item.title);
}
}
if 条件のみを削除し、コードを次のように残す場合:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// NSLog(@"Source Controller = %@", [segue sourceViewController]);
// NSLog(@"Destination Controller = %@", [segue destinationViewController]);
// NSLog(@"Segue Identifier = %@", [segue identifier]);
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
lastNews *item = [news objectAtIndex:indexPath.row];
[segue.destinationViewController setDetail:item];
NSLog(@"%@", item.title);
}
私のデータは転送できますが、常に最初のセルのみです。
このように実装する場合:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"detailNews"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
//if (indexPath){
lastNews *item = [news objectAtIndex:indexPath.row];
[segue.destinationViewController setDetail:item];
NSLog(@"%@", item.category);
}
}
ただし、常にニュースのタイトルを送信し、常に最初のニュースから送信します。(確認用のNSLOGのみ)
タイトルだけでなく、すべての値を受け取ることはわかっています。NSLOGで確認しました。
参考までに、私は常に Web サイトから最新の 20 のニュースを解析しています。
どこが間違っているのか教えてください。
ありがとうございました