diff --git a/ios/RCCNavigationController.m b/ios/RCCNavigationController.m index bbf0e534559..2714ad2e42b 100755 --- a/ios/RCCNavigationController.m +++ b/ios/RCCNavigationController.m @@ -172,6 +172,8 @@ - (void)performAction:(NSString*)performAction actionParams:(NSDictionary*)actio if ([self.topViewController isKindOfClass:[RCCViewController class]]) { RCCViewController *topViewController = ((RCCViewController*)self.topViewController); + topViewController.previewController = nil; + [topViewController.navigationController unregisterForPreviewingWithContext:topViewController.previewContext]; viewController.previewActions = previewActions; viewController.previewCommit = actionParams[@"previewCommit"] ? [actionParams[@"previewCommit"] boolValue] : YES; NSNumber *previewHeight = actionParams[@"previewHeight"]; @@ -184,7 +186,7 @@ - (void)performAction:(NSString*)performAction actionParams:(NSDictionary*)actio [bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { UIView *view = viewRegistry[previewViewID]; topViewController.previewView = view; - [topViewController registerForPreviewingWithDelegate:(id)topViewController sourceView:view]; + topViewController.previewContext = [topViewController registerForPreviewingWithDelegate:(id)topViewController sourceView:view]; }]; }); topViewController.previewController = viewController; diff --git a/ios/RCCViewController.h b/ios/RCCViewController.h index 27ca96d415a..5b35a755756 100755 --- a/ios/RCCViewController.h +++ b/ios/RCCViewController.h @@ -22,6 +22,7 @@ extern NSString* const RCCViewControllerCancelReactTouchesNotification; @property (nonatomic) UIView *previewView; @property (nonatomic) NSArray *previewActions; @property (nonatomic) BOOL previewCommit; +@property (nonatomic) id previewContext; + (UIViewController*)controllerWithLayout:(NSDictionary *)layout globalProps:(NSDictionary *)globalProps bridge:(RCTBridge *)bridge;