数据未传递给视图

时间:2011-11-21 17:23:33

标签: iphone objective-c ios model-view-controller storyboard

我想将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];
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

human中的变量setHuman包含employee。因此,您应该将变量human分配给函数中@property的{​​{1}} human。或者更好的是,只需从外部分配属性:DetailViewController

您的detailViewController.human = employee返回null,因为您在将NSLog分配给human之前将其称为

也许选择较少重复的ivar名称会有所帮助。