每次显示时,我都需要将一些数据加载到视图中。每次显示时间视图时,数据都会发生变化,因此我认为可以在方法viewDidAppear中加载数据。不幸的是,我发现并不是每次显示视图时都会调用viewDidAppear。
显示来自任何其他视图的视图的代码是....
[self clearView];
[self.view insertSubview:fifthViewController.view atIndex:4];所以我想我可以把它改成下面的代码来运行viewDidAppear...
[[self.view insertSubview:fifthViewController.view atIndex: 4 viewDidAppear:YES];不幸的是,这会导致错误“错误的接收器类型'void‘”
我需要做什么才能插入子视图并调用viewDidAppear?
发布于 2012-07-29 07:50:30
感谢您对这个问题的帮助。我决定在插入子视图的方法中添加一个viewDidAppear。
下面是目前为我工作的代码。
在最高级别视图控制器的.m文件中,以下代码设置viewDidAppear调用,然后插入第五个子视图。
-(IBAction) loadFifthView:(id)sender
{
[fifthViewController viewDidAppear:YES]; // sets up viewDidAppear
[self clearView];
[self.view insertSubview:fifthViewController.view atIndex:4];
}准备好上面的代码片段后,位于第五个视图控制器的.m文件中的以下代码片段报告它正在工作。
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@" xxxxxxxxxxxxxxxx inside viewDidAppear ");
}发布于 2012-07-28 11:11:41
如果您通过直接修改ViewController.view可见性来显示视图,那么您将无法获得viewDidAppear消息。需要使用ViewController方法来显示视图,例如将控制器推送到UINavigationController中,或者使用presentModalViewController方法。你可以使用像手动调用viewWillAppear:和viewDidAppear:这样的技巧,但我不喜欢这个想法。
https://stackoverflow.com/questions/11697845
复制相似问题