![](/img/trans.png)
[英]presentViewController not presenting view, but viewDidLoad(…) does get called
[英]ViewDidLoad does not get called
我正在為iPhone和iPad開發一個應用程序。 該應用程序具有一個TabBar,可在ViewController之間切換。 我知道,當針對這兩種設備開發應用程序時,我要做的就是再次為iPad創建情節提要項,然后將屬性與我已經擁有的ViewControllers連接起來,即FirstViewController對於iPhone和iPad應用程序是相同的。
在iPhone應用程序中,有三個選項卡,但是由於iPad的屏幕尺寸更大,我希望為iPad版本提供兩個選項卡。 因此,我想將iPad應用程序的SecondViewController和ThirdViewController合並。 因此,我決定UIViewController
並將其命名為MyViewController。 MyViewController內部包含SecondViewController
和ThridViewController
的代碼。
在模擬器中,我可以看到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.