今天接到新的修改需求,要求指定的詳情頁面只有點擊返回按鈕才可返回,這樣就必須關(guān)閉邊緣返回,于是網(wǎng)上找了各種教程,總結(jié)下來基本上都是關(guān)掉navigation的interactivePopGestureRecognizer,關(guān)掉后測試發(fā)現(xiàn)達不到效果。無奈之下,自己嘗試通過斷點查看navigation上的gestureRecognizer發(fā)現(xiàn)有不止一個gestureRecognizer存在而且都是和view的transaction有關(guān)。既然關(guān)一個不成,索性使用遍歷數(shù)組的方式將其全部關(guān)閉了,結(jié)果終于成功,現(xiàn)在獻上代碼,希望對大家有幫助!
//關(guān)閉響應(yīng)
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSArray *navtureRecognizers = self.navigationController.view.gestureRecognizers;
[navtureRecognizers enumerateObjectsUsingBlock:^(UIGestureRecognizer *obj, NSUInteger idx, BOOL * _Nonnull stop) {
obj.enabled = NO;
}];
}
//打開響應(yīng)
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSArray *navtureRecognizers = self.navigationController.view.gestureRecognizers;
[navtureRecognizers enumerateObjectsUsingBlock:^(UIGestureRecognizer *obj, NSUInteger idx, BOOL * _Nonnull stop) {
obj.enabled = YES;
}];
}