1 下面的方法 是在假设window的rootViewcontroller有VC的情况的获取方式, rootViewcontroller 为空的app 我没见过,如果你的是的,自己再添加代码吧 这是去高德面试的时候,被问的一个问题,当时不会,这种问题,怎么说呢,只要给我一台互联网的电脑,我就能解决,我不可能知道所有的技巧,但是我有解决问题的能力
- (UIViewController *)appRootViewController
{
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
UIViewController *vc = keyWindow.rootViewController;
UIViewController * tempVc = nil;
while (vc)
{
tempVc = vc;
if ([vc isKindOfClass:[UINavigationController class]])
{
vc = [(UINavigationController *)vc visibleViewController];
}
else if ([vc isKindOfClass:[UITabBarController class]])
{
vc = [(UITabBarController *)vc selectedViewController];
}
else
{
vc = vc.presentedViewController;
}
}
return tempVc;
}