[英]viewWillAppear is not calling up in iOS
我創建了三個名為A
, B
和C
視圖控制器。 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.