我正在为iPhone和iPad开发应用程序。该应用程序有一个TabBar可在ViewControllers之间切换。我知道,当为两种设备开发应用程序时,我所要做的就是再次为iPad创建Storyboard项目,并将属性与我已经拥有的ViewControllers连接,即FirstViewController与iPhone和iPad应用程序相同。
在iPhone应用程序中有三个选项卡,但由于iPad的屏幕尺寸较大,我希望iPad版有两个选项卡。所以我想为iPad应用程序合并SecondViewController和ThirdViewController。所以我决定继承UIViewController
并将其命名为MyViewController。在MyViewController内部输入SecondViewController
和ThridViewController
的代码。
在模拟器中,我可以看到MyViewController
视图的背景图像和故事板项目。问题是viewDidLoad
方法没有调用MyViewController
方法([super viewDidLoad]
之后我有一个NSLog语句)。我在Idendity Inspector的故事板中检查过该类是MyViewController
。还尝试使用新的子类创建一个全新的ViewController,但是对于新的ViewController,方法viewDidLoad
方法也没有被调用。
答案 0 :(得分:0)
当您移动到 controller-B 时,标签栏控制器不会释放 controller-A ,反之亦然。它们会被分配一次,因此您看不到viewDidLoad标签是洗牌的。
您可能需要检查viewWillAppear
方法才能看到viewControllers是否被调用!
答案 1 :(得分:0)
您可以使用这些生命周期事件:
回应查看事件
– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:
– viewWillLayoutSubviews
– viewDidLayoutSubviews
- (void)viewDidAppear:(BOOL)animated
当您的视图再次可见时,将调用viewDidAppear