我正在学习iOS开发和阅读Apple的教程(即“你的第二个iOS应用程序”)和构建观鸟应用程序。简而言之,这是一个鸟类列表,你在表格视图中选择了它,然后它会显示一个新视图,显示有关鸟类的更多细节。
一切似乎都有效,但在消除之后,新视图不会被填满。它是空的。
我认为它可能在我的prepareForSegue:
方法中,但是当我将NSLog放在那里进行测试时它会被解雇。
以下是prepareForSegue:
方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"DetailViewSegue"]) {
CSBirdDetailViewController *detailViewController = segue.destinationViewController;
CSBirdSighting *selectedBirdSighting = [self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row];
detailViewController.birdSighting = selectedBirdSighting;
detailViewController.birdNameLabel.text = @"Stinker";
NSLog(@"HEY THERE!");
}
}
以下是Xcode项目的全部内容(相当小)以获取更多信息:http://cl.ly/37041I2K0N24
我无法弄清楚它为什么不显示。使用上面的方法,我从模型(主视图/源视图控制器使用的单独类)设置destinationViewController(详细视图)的数据。我设置的数据是一个BirdSighting对象,基本上是该类读取。
答案 0 :(得分:1)
尝试放置
[self configureView];
在你的CSBirdDetailViewController viewDidLoad方法而不是prepareForSeque:方法
prepareForSegue:方法太早,无法配置视图。
首次访问视图时会创建视图(延迟加载)。首次启动CSBirdDetailViewController时不会创建它。