判断当前控制器

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

推荐阅读更多精彩内容