判断当前控制器

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

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

推荐阅读更多精彩内容