【发布时间】:2012-09-07 05:51:51
【问题描述】:
我需要一个根视图控制器的实例。
我尝试了这些方法:
UIViewController *rootViewController = (UIViewController*)[[[UIApplication sharedApplication] keyWindow] rootViewController];
返回:null:
当我尝试获取控制器数组时:
NSArray *viewControllers = self.navigationController.viewControllers;
它只返回一个控制器,但它不是我的根视图控制器。
如果我尝试从导航控制器中获取:
UIViewController *root = (UIViewController*)[self.navigationController.viewControllers objectAtIndex:0];
返回:null:
任何想法为什么?我还能尝试获取根视图控制器的实例吗?
谢谢。
【问题讨论】:
-
keyWindow是活动窗口,例如,当你显示一个UIAlertView时,UIAlertView的窗口是keyWindow但不是AppDelegate的窗口。如果你想获取应用程序的rootViewController,可以使用[[[ UIApplication sharedApplication] delegate] window] rootViewController ] 更好。
标签: objective-c swift ios5 uiviewcontroller uinavigationcontroller