引发
在navigation的rootViewController使用‘边缘返回手势’就是右滑,此时APP无异常,然后任意操作push到二级界面,再pop到该导航控制器rootViewController,此时APP已经假死了,现象是界面卡死,动不了
解决
在导航栏的根控制器中
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// 如果 Self 是 NavigationController 的 根视图控制器, 则关闭返回手势.
if (self == [self.navigationController.viewControllers firstObject]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
} else {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}
#pragma mark - 方法1: 在手势的代理方法中, 判断是否允许启动手势
#pragma mark -
#pragma mark 是否允许手势启动
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
// 如果 Self 是 NaivationController 的 根试图控制器, 则不允许启动手势
if (self == [self.navigationController.viewControllers firstObject]) {
return NO;
}
return YES;
}
网友评论