【发布时间】:2013-04-18 16:27:59
【问题描述】:
单击单元格并尝试将我的日期转移到 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 条新闻 这很有效,我的单元格被新闻标题填满了。
你能告诉我我哪里错了吗?
谢谢
【问题讨论】:
标签: objective-c xcode uistoryboardsegue