簡體   English   中英

沒有調用ViewDidLoad

[英]ViewDidLoad does not get called

我正在為iPhone和iPad開發一個應用程序。 該應用程序具有一個TabBar,可在ViewController之間切換。 我知道,當針對這兩種設備開發應用程序時,我要做的就是再次為iPad創建情節提要項,然后將屬性與我已經擁有的ViewControllers連接起來,即FirstViewController對於iPhone和iPad應用程序是相同的。

在iPhone應用程序中,有三個選項卡,但是由於iPad的屏幕尺寸更大,我希望為iPad版本提供兩個選項卡。 因此,我想將iPad應用程序的SecondViewController和ThirdViewController合並。 因此,我決定UIViewController並將其命名為MyViewController。 MyViewController內部包含SecondViewControllerThridViewController的代碼。

在模擬器中,我可以看到MyViewController視圖的背景圖像和Storyboard項目。 問題在於,不會在MyViewController類上調用viewDidLoad方法(在[super viewDidLoad]之后有一個NSLog語句)。 我在Idendity Inspector的情節提要中檢查了該類是MyViewController 還嘗試創建一個具有新子類的全新ViewController,但也嘗試為該新ViewController調用方法viewDidLoad方法。

當您移動到控制器B時,選項卡欄控制器不會釋放控制器A ,反之亦然。它們被分配一次,因此在選項卡被重新排列時您看不到viewDidLoad。

您可能必須檢查viewWillAppear方法以查看是否調用了viewControllers!

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

響應查看事件

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

- (void)viewDidAppear:(BOOL)animated

當您的視圖再次可見時,將調用viewDidAppear

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM