判斷當(dāng)前控制器是不是為導(dǎo)航控制器司蔬,是否可以進(jìn)行push 操作
#pragma mark ---獲取當(dāng)前視圖控制器對象
+ (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;
}
上面的是獲取當(dāng)前界面最前面的控制器對象
可以根據(jù)UINavigationController 的一個(gè)屬性 柴信,viewControllers 东揣,這個(gè)屬性泌神,是NSArray 類型的皂股,可以根據(jù)數(shù)組里的 count 進(jìn)行判斷界弧,為0伟阔,說明不是導(dǎo)航控制器,不能進(jìn)行 push 操作觅玻,否則就可以
[ToolManager currentViewControll].navigationController.viewControllers.count == 0