在iOS7中拦截反向导航

在iOS7中拦截反向导航,ios,uinavigationcontroller,ios7,Ios,Uinavigationcontroller,Ios7,如果有人没有保存更改,我想阻止他们返回我的导航控制器。因此,大多数帖子都会讨论覆盖“后退”按钮(使用各种技术)。但是,iOS7允许您现在在导航视图控制器中滑动以返回 我确实看到了UINavigationControllerDelegate,它看起来像是我想要实现的委托的正确类型,但我认为没有办法取消导航操作。有没有办法做到这一点?不幸的是,iOS7没有任何变化,如果你想检查一下,你仍然需要伪造你的后退按钮 顺便说一句,现在更容易了,因为你不需要伪造箭头按钮 编辑: 为此: UIButton *b

如果有人没有保存更改,我想阻止他们返回我的导航控制器。因此,大多数帖子都会讨论覆盖“后退”按钮(使用各种技术)。但是,iOS7允许您现在在
导航视图控制器中滑动以返回


我确实看到了
UINavigationControllerDelegate
,它看起来像是我想要实现的
委托的正确类型,但我认为没有办法取消导航操作。有没有办法做到这一点?

不幸的是,iOS7没有任何变化,如果你想检查一下,你仍然需要伪造你的后退按钮

顺便说一句,现在更容易了,因为你不需要伪造箭头按钮

编辑:

为此:

UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 44.0f, 30.0f)];
[backButton setImage:[UIImage imageNamed:@"back.png"]  forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(popVC) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

但是如何拦截屏幕边缘拖动(iOS7中新增)?这不使用按钮,是吗?您只需更换左backBarButtom即可。您可能希望检测添加到UIgestureRecognitor(使用addTarget消息)的方法中的后退手势开始,并从中显示警报。这可能会打破手势。另一个选择是完全禁用背部手势