0

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

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

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

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

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

不幸的是,这会导致错误“错误的接收器类型'void'

我需要做什么才能插入子视图并调用 viewDidAppear?

4

2 回答 2

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 ");


}
于 2012-07-28T23:50:30.033 回答
0

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

于 2012-07-28T03:11:40.833 回答