3

单击单元格并尝试将我的日期转移到 DetailViewController 时,我遇到了 segue 问题

我没有在这里找到我的问题的答案,所以我在这里问。

这是我的方法:

- (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 检查了它,而不仅仅是标题。

为了您的信息,我总是从网站上解析出最新的 20 条新闻,这是有效的,我的单元格中充满了新闻标题。

你能建议我哪里错了吗?

谢谢

4

2 回答 2

8

如果“发件人”是调用它的单元格,您可以执行以下操作:

NSIndexPath *indexPath = [[self tableView] indexPathForCell:sender];
lastNews *item = [news objectAtIndex:indexPath.row];
[segue.destinationViewController setDetail:item];
于 2013-04-18T16:47:50.547 回答
2

好的,我想我解决了我的最后一个问题。我忘记将我的 IBOUTLET Tableview 连接到我的视图控制器。而已

于 2013-04-19T14:02:45.027 回答