判断当前控制器

作者: Xavier丶xie | 来源:发表于2017-05-24 15:01 被阅读8次

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

相关文章

网友评论

    本文标题:判断当前控制器

    本文链接:https://www.haomeiwen.com/subject/zhinkttx.html