2011-11-21 56 views
0

我想將在tableView中選擇的「人」傳遞給detailViewController。我通過Storyboards將它們連接到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

您的變量humansetHuman包含employee。因此,您應該在您的功能中將變量human分配給DetailViewController@propertyhuman。或者更好的是,只需從外部分配房產:detailViewController.human = employee

NSLog返回null,因爲你分配humanemployee之前調用它

也許選擇較少的重複伊娃名稱會有所幫助。

+0

謝謝哥們! – Faser