查找当前viewController  _ 循环查找

+ (UIViewController*) findBestViewController:(UIViewController*)vc {

if(vc.presentedViewController) {

// Return presented view controller

return[BasicViewControllerfindBestViewController:vc.presentedViewController];

}elseif([vcisKindOfClass:[UINavigationControllerclass]]) {

// Return top view

UINavigationController*svc = (UINavigationController*)vc;

if(svc.viewControllers.count>0)

return[BasicViewControllerfindBestViewController:svc.topViewController];

else

returnvc;

}elseif([vcisKindOfClass:[UITabBarControllerclass]]) {

// Return visible view

UITabBarController*svc = (UITabBarController*)vc;

if(svc.viewControllers.count>0)

return[BasicViewControllerfindBestViewController:svc.selectedViewController];

else

returnvc;

}else{

// Unknown view controller type, return last child view controller

returnvc;

}

}

+ (UIViewController*)currentViewController {

// Find best view controller

UIViewController*viewController = [UIApplicationsharedApplication].keyWindow.rootViewController;

return[BasicViewControllerfindBestViewController:viewController];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容