0

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

在 iPhone 应用程序中有三个选项卡,但由于 iPad 的屏幕尺寸更大,我希望 iPad 版本有两个选项卡。所以我想为 iPad 应用合并 SecondViewController 和 ThirdViewController。所以我决定子类UIViewController化并将其命名为 MyViewController。MyViewController 里面有SecondViewController和的代码ThridViewController

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

4

2 回答 2

0

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

响应查看事件

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

- (void)viewDidAppear:(BOOL)animated

当您的视图再次可见时,将调用 viewDidAppear

于 2013-09-11T07:33:30.570 回答
0

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

您可能必须检查viewWillAppear方法以查看是否调用了 viewControllers!

于 2013-09-11T07:28:51.043 回答