您的位置:首页 > 移动开发 > IOS开发

ios 获取当前ViewController

2016-06-02 17:23 337 查看
- (UIViewController*)getpresentVC:(UIWindow *)window{
if ([window.rootViewController class]==[UITabBarController class]) {
UITabBarController *tabBarController = (UITabBarController*)window.rootViewController;
UINavigationController *navi = [tabBarController.viewControllers lastObject];
NSLog(@"%d",navi.viewControllers.count);
UIViewController *VC =[navi.viewControllers lastObject];
if (!VC.presentedViewController) {
return VC.presentedViewController;
}else{
return VC;
}
}else{
return window.rootViewController;
}
}


或者使用递归调用

- (UIViewController*)topViewController {
return [self topViewControllerWithRootViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
}
- (UIViewController*)topViewControllerWithRootViewController:(UIViewController*)rootViewController {

if ([rootViewController isKindOfClass:[UITabBarController class]]) {

UITabBarController* tabBarController = (UITabBarController*)rootViewController;
return [self topViewControllerWithRootViewController:tabBarController.selectedViewController];
} else if ([rootViewController isKindOfClass:[UINavigationController class]]) {
UINavigationController* nav = (UINavigationController*)rootViewController;
return [self topViewControllerWithRootViewController:nav.visibleViewController];
} else if (rootViewController.presentedViewController) {
UIViewController* presentedViewController = rootViewController.presentedViewController;
return [self topViewControllerWithRootViewController:presentedViewController];
} else {
return rootViewController;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: