我想将tableView
中选择的“人”传递给detailViewController
。我通过Storyboard在Interface Builder中连接它们并设置了一个自己的segue标识符。 NSLog
被调用但返回(null)
。此外,在detailView中,没有显示任何内容,但默认内容...
我的tableViewController
:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"didSelectRow"]) {
DetailViewController *detailViewController = (DetailViewController *)[segue destinationViewController];
Human *employee = [[Human alloc] init];
employee = [people objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];
[detailViewController setHuman:employee];
}
}
detailViewController
-(void)setHuman:(Human *)human
{
NSLog(@"%@",employee.name);
employee = human;
nameLab.text = employee.name;
descriptionLab.text = employee.description;
imageViewBig.image = [employee imageForName];
}
提前致谢!
答案 0 :(得分:1)
human
中的变量setHuman
包含employee
。因此,您应该将变量human
分配给函数中@property
的{{1}} human
。或者更好的是,只需从外部分配属性:DetailViewController
。
您的detailViewController.human = employee
返回null,因为您在将NSLog
分配给human
之前将其称为。
也许选择较少重复的ivar名称会有所帮助。