判断当前控制器
2017-05-24 本文已影响8人
Xavier丶xie
判断当前控制器是不是为导航控制器,是否可以进行push 操作
#pragma mark ---获取当前视图控制器对象
+ (UIViewController*)currentViewControll{
UIWindow* window = [[UIApplication sharedApplication]keyWindow];
UIViewController*result = window.rootViewController;
while(result.presentedViewController) {
result = result.presentedViewController;
}
if([resultisKindOfClass:[CYLTabBarController class]]) {
result = [(CYLTabBarController*)resultselectedViewController];
}
if([resultisKindOfClass:[UINavigationControllerclass]]) {
result = [(UINavigationController*)resulttopViewController];
}
returnresult;
}
上面的是获取当前界面最前面的控制器对象
可以根据UINavigationController 的一个属性 ,viewControllers ,这个属性,是NSArray 类型的,可以根据数组里的 count 进行判断,为0,说明不是导航控制器,不能进行 push 操作,否则就可以
[ToolManager currentViewControll].navigationController.viewControllers.count == 0