![](/img/trans.png)
[英]iOS app crashing after setting UIWindow rootViewController in iOS 9
[英]UIWindow loses rootviewcontroller after launch
我的應用程序有一個帶有正確設置的rootview控制器的UIWindow。 我知道這一點是因為我在設置了它之后(在應用程序委托中)檢查了rootViewController,一切都很好。
我的應用啟動后,一切正常。 我的問題是,當我在“主”視圖中簽入時,rootview控制器在UIWindow上的設置不再正確。
我的應用程序正常運行..所以您可能想知道的問題是...我正在嘗試實現AdColony(視頻廣告),他們需要抓住UIWindow的rotviewcontroller來展示廣告。 當他們檢查rootviewcontroller ...時為null。
我也添加了要檢查的代碼..而rootviewcontroller為null。
我的UIWindow如何丟失指向rootviewcontroller的指針? 我需要幫助來了解UIWindow體系結構的工作方式。
謝謝
檢查UIWindow的可見控制器的代碼(以下代碼為viewcontrollers值返回nil。
UIWindow* window = [UIApplication sharedApplication].keyWindow;
UIViewController* rootViewController = [window rootViewController];
[self getVisibleViewControllerChild:rootViewController];
- (UIViewController*)getVisibleViewControllerChild:(UIViewController*)viewController {
UIViewController* visibleViewController = nil;
if(!viewController) {
NSLog(@"nil");
return nil;
}
if ([viewController isKindOfClass:[UINavigationController class]]) {
UINavigationController* navigationController = (UINavigationController*)viewController;
viewController = navigationController.visibleViewController;
NSLog(@"viewcontroller is nav controller");
}
while (visibleViewController == nil) {
if (viewController.modalViewController == nil) {
visibleViewController = viewController;
NSLog(@"visibleViewController = %@", visibleViewController);
} else {
if ([viewController.modalViewController isKindOfClass:[UINavigationController class]]) {
UINavigationController *navigationController = (UINavigationController *)viewController.modalViewController;
viewController = navigationController.visibleViewController;
NSLog(@"modal 1");
} else {
viewController = viewController.modalViewController;
NSLog(@"modal 2");
}
}
}
return visibleViewController;
}
我無法真正弄清楚您要使用此代碼做什么,但是方法keyWindow似乎返回nil,因此rootViewController也將為nil。 我不確定為什么會這樣,但是您可以使用rootViewController(我假設您正在從視圖控制器執行此操作):
self.view.window.rootViewController
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.