如何运行viewDidAppear

时间:2012-07-28 02:48:01

标签: ios

我需要在每次显示时将一些数据加载到视图中。每次显示时间视图时数据都会发生变化,因此我想我可以在方法viewDidAppear中加载数据。不幸的是,我发现每次显示视图时都不会调用viewDidAppear。

从任何其他视图显示视图的代码是....

[self clearView];
[self.view insertSubview:fifthViewController.view atIndex:4];

所以我想我可以将它更改为以下内容来运行viewDidAppear ...

[[self.view insertSubview:fifthViewController.view atIndex: 4 viewDidAppear:YES];

遗憾的是,这会导致“错误的接收器类型'无效'

错误

插入子视图和调用viewDidAppear需要做什么?

2 个答案:

答案 0 :(得分:0)

如果您通过直接修改ViewController.view可见性来展示视图,那么您将不会收到viewDidAppear消息。您需要使用ViewController方法来显示视图,例如将控制器推入UINavigationController或使用presentModalViewController方法。您可以像使用手动调用viewWillAppear:viewDidAppear:一样使用hack,但我不喜欢这个想法。

答案 1 :(得分:0)

感谢您对此问题的帮助。 我已经决定在插入子视图的方法中添加一个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 ");


}