我在点击单元格并尝试将我的日期转移到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);
}
}
如果我只删除条件 并保留我的代码:
- (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条新闻 这是有效的,我的细胞充满了新闻标题。
你能告诉我我错在哪里吗?
谢谢
答案 0 :(得分:8)
如果“sender”是调用它的单元格,您可以执行以下操作:
NSIndexPath *indexPath = [[self tableView] indexPathForCell:sender];
lastNews *item = [news objectAtIndex:indexPath.row];
[segue.destinationViewController setDetail:item];
答案 1 :(得分:2)
好的,我想我解决了我的上一期。我忘记了将我的IBOUTLET Tableview连接到我的viewcontroller。就是这样