我有一个UINavigationBar,它拦截了后退按钮的点击事件,并提示用户是否有未保存的更改。这是基于UINavigationController and UINavigationBarDelegate.ShouldPopItem() with MonoTouch中提出的解决方案,使用UINavigationBarDelegate协议并实现
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item;
现在,iOS7引入了向右滑动即可返回的手势,我也想要拦截该手势,但是目前找到的解决方案都无法正常工作,包括使用[self.interactivePopGestureRecognizer addTarget:self action:@selector(handlePopGesture:)];
和- (void)handlePopGesture:(UIGestureRecognizer *)gesture {
if (gesture.state == UIGestureRecognizerStateEnded) {
[self popViewControllerAnimated:NO];
}
}
虽然这样可以弹出视图,但它会保留导航栏按钮,因此我最终得到的是一个指向空白页面的返回按钮,以及我添加到导航栏的所有其他导航按钮。有什么建议吗?