簡體   English   中英

viewWillAppear沒有在iOS中調出

[英]viewWillAppear is not calling up in iOS

我創建了三個名為ABC視圖控制器。 C視圖控制器是B視圖控制器的子視圖,並且在執行A的視圖時將其推到B C的View Controller委托方法viewWillAppear沒有調用。

問題出在IOS版本上。

在將另一個視圖控制器的視圖(viewControllerC.view)作為子視圖添加到現有視圖控制器(viewControllerB)時,viewControllerC的viewWillAppear:()viewDidAppear:() 在ios 5.0早期版本中不會觸發 如果需要調用,請通過檢查設備ios版本來手動調用此方法。

您可以檢查ios版本並像這樣手動調用委托方法...

 [viewControllerB addSubview:viewControllerC.view];
 if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) 
    {
        [viewControllerC viewWillAppear:YES];
        [viewControllerC viewDidAppear:YES];
    }

您說C的視圖控制器是B的子視圖。

我假設您正在執行以下操作:

UIViewController *viewControllerB = [[UIViewController alloc] init];
UIViewController *viewControllerC = [[UIViewController alloc] init];

//add C's view to B
[[viewControllerB view] addSubview:[viewControllerC view]];

如果是這樣,則需要將viewController C添加為B的子viewController。

//you need to set C to be a child view controller of B
[viewControllerB addChildViewController:viewControllerC];

這應該確保正確調用了適當的viewWill / viewDid方法。

暫無
暫無

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

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