3

セルをクリックして日付を 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 のニュースを解析しています。

どこが間違っているのか教えてください。

ありがとうございました

4

2 に答える 2

2

わかりました、最後の問題を解決したと思います。IBOUTLET Tableview をビューコントローラーに接続するのを忘れてしまいました。それでおしまい

于 2013-04-19T14:02:45.027 に答える