ViewDidLoad没有被调用

时间:2013-09-11 07:19:02

标签: ios ipad uiviewcontroller

我正在为iPhone和iPad开发应用程序。该应用程序有一个TabBar可在ViewControllers之间切换。我知道,当为两种设备开发应用程序时,我所要做的就是再次为iPad创建Storyboard项目,并将属性与我已经拥有的ViewControllers连接,即FirstViewController与iPhone和iPad应用程序相同。

在iPhone应用程序中有三个选项卡,但由于iPad的屏幕尺寸较大,我希望iPad版有两个选项卡。所以我想为iPad应用程序合并SecondViewController和ThirdViewController。所以我决定继承UIViewController并将其命名为MyViewController。在MyViewController内部输入SecondViewControllerThridViewController的代码。

在模拟器中,我可以看到MyViewController视图的背景图像和故事板项目。问题是viewDidLoad方法没有调用MyViewController方法([super viewDidLoad]之后我有一个NSLog语句)。我在Idendity Inspector的故事板中检查过该类是MyViewController。还尝试使用新的子类创建一个全新的ViewController,但是对于新的ViewController,方法viewDidLoad方法也没有被调用。

2 个答案:

答案 0 :(得分:0)

当您移动到 controller-B 时,标签栏控制器不会释放 controller-A ,反之亦然。它们会被分配一次,因此您看不到viewDidLoad标签是洗牌的。

您可能需要检查viewWillAppear方法才能看到viewControllers是否被调用!

答案 1 :(得分:0)

您可以使用这些生命周期事件:

回应查看事件

– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:
– viewWillLayoutSubviews
– viewDidLayoutSubviews

- (void)viewDidAppear:(BOOL)animated
当您的视图再次可见时,

将调用viewDidAppear