話不多說,直接看代碼
需要禁止右滑的controller里面引入代理
@interface SAL5DVC ()<UIGestureRecognizerDelegate>
@end
@implementation SAL5DVC
#pragma mark -- 禁止右滑返回
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return NO;
}
@end
完美運行羽德、親測成功几莽,之前 我是這么寫的
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//禁用屏幕左滑返回手勢
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)])
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
//開啟
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
這么寫的問題在于,當(dāng)進入頁面之后宅静,第一次向右滑動是可以返回的章蚣,松開第二次,才會有效果姨夹,不完美??????