diff --git a/SignalMessaging/ViewControllers/OWSNavigationController.m b/SignalMessaging/ViewControllers/OWSNavigationController.m index 37bbf0abc..30cbb3f4c 100644 --- a/SignalMessaging/ViewControllers/OWSNavigationController.m +++ b/SignalMessaging/ViewControllers/OWSNavigationController.m @@ -91,12 +91,19 @@ NS_ASSUME_NONNULL_BEGIN // if a view has unsaved changes. - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { + OWSAssert(gestureRecognizer == self.interactivePopGestureRecognizer); + UIViewController *topViewController = self.topViewController; if ([topViewController conformsToProtocol:@protocol(OWSNavigationView)]) { id navigationView = (id)topViewController; return ![navigationView shouldCancelNavigationBack]; } else { - return YES; + UIViewController *rootViewController = self.viewControllers.firstObject; + if (topViewController == rootViewController) { + return NO; + } else { + return YES; + } } }