判断当前控制器

96
Xavier丶xie
2017.05.24 15:01* 字数 168

判断当前控制器是不是为导航控制器,是否可以进行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

随笔
Web note ad 1