UINavigationControllerBackButtonHandlerProtocol
@protocol UINavigationControllerBackButtonHandlerProtocol <NSObject>
拦截系统默认返回按钮事件,有时候需要在点击系统返回按钮,或者手势返回的时候想要拦截事件,比如要判断当前界面编辑的的内容是否要保存,或者返回的时候需要做一些额外的逻辑处理等等。
-
点击系统返回按钮或者手势返回的时候是否要相应界面返回(手动调用代码pop排除)。支持参数判断是点击系统返回按钮还是通过手势触发 一般使用的场景是:可以在这个返回里面做一些业务的判断,比如点击返回按钮的时候,如果输入框里面的文本没有满足条件的则可以弹 Alert 并且返回 NO 来阻止用户退出界面导致不合法的数据或者数据丢失。
Declaration
Objective-C
- (BOOL)shouldPopViewControllerByBackButtonOrPopGesture:(BOOL)byPopGesture;
Swift
optional func shouldPopViewController(byBackButtonOrPopGesture byPopGesture: Bool) -> Bool
-
当自定义了
leftBarButtonItem
按钮之后,系统的手势返回就失效了。可以通过forceEnableInteractivePopGestureRecognizer
来决定要不要把那个手势返回强制加回来。当 interactivePopGestureRecognizer.enabled = NO 或者当前UINavigationController
堆栈的viewControllers小于2的时候此方法无效。Declaration
Objective-C
- (BOOL)forceEnableInteractivePopGestureRecognizer;
Swift
optional func forceEnableInteractivePopGestureRecognizer() -> Bool