0

我注意到,当我以模态方式呈现视图控制器时,永远不会调用 viewDidLoad 方法。

IE:

InfoViewController *v = [[Global get] infoVC];
[self presentModalViewController: v animated: true];

无论如何我可以让它调用这个吗?我已将 viewDidLoad 代码放在 ViewDidAppear 中,我担心这些项目会在视图中绘制两次?如果打开两次?或者它会从内存中删除?

4

2 回答 2

2

viewDidLoad 只会在创建控制器时被调用。因此,如果您的: [[Global get] infoVC] 未分配和返回控制器(返回已创建的控制器),则不会调用 viewDidLoad。在 viewDidAppear 中,调整与控制器相关的视图是安全的。如果您在 viewDidLoad 中创建它们,它们将已经存在。

或者如果你想调用 viewDidLoad 创建一个新的控制器。

infoViewController *v = [[InfoViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController: v animated: true];
[v release];
于 2012-10-24T04:29:25.953 回答
1

如果您只是将项目添加到您的视图中viewDidLoad,则可以将该代码放入其中loadView

于 2012-10-24T03:42:50.867 回答