参考链接: https://www.jianshu.com/p/6498ececc22f https://juejin.im/entry/57fcd57a67f356005886e867 https://www.jianshu.com/p/e0fb249a77b4 https://blog.csdn.net/howlaa/article/details/62418074 让滑动返回手势生效 如果使用自定义的按钮去替换系统默认返回按钮,会出现滑动返回手势失效的情况。解决方法也很简单,只需要重新添加导航栏的 interactivePopGestureRecognizer 的 delegate 即可。 首先为ViewContoller添加 UIGestureRecognizerDelegate 协议 然后设置代理 self.navigationController.interactivePopGestureRecognizer.delegate = self; 至此,我们已经将返回按钮替换为我们的自定义按钮,并使滑动返回重新生效。接下来,我们继续来解决交互上的问题。 监听控制器滑动返回 当我们用手势滑动返回是需要监听他的返回事件,在 UIViewController (UIContainerViewControllerCallbacks) 这个分类里有两个方法可以监听 - ( void )willMoveToParentViewController:( UIViewController *)parent { NSLog ( @"将要返回" ); } - ( void )didMoveToParentViewController:( UIViewController *)parent { NSLog ( @"返回结束" ); } 滑动返回从有导航栏到无导航栏界面的问题 - ( void )viewWillDisappear:( BOOL )animated { [ super viewWillDisappear :animated]; [ self . navigationController setNavig...