diff --git a/ios/RCCManagerModule.m b/ios/RCCManagerModule.m index 7dde7343061..851edf7bcfd 100755 --- a/ios/RCCManagerModule.m +++ b/ios/RCCManagerModule.m @@ -171,15 +171,20 @@ -(void)dismissAllModalPresenters:(NSMutableArray*)allPresentedViewControllers re dispatch_semaphore_wait(dismiss_sema, DISPATCH_TIME_FOREVER); } - else if (counter == allPresentedViewControllers.count && allPresentedViewControllers.count > 0) - { - [allPresentedViewControllers removeAllObjects]; - - if (resolve != nil) { - dispatch_async(dispatch_get_main_queue(), ^ - { - resolve(nil); - }); + else { + if (rootViewController != viewController) { + [[RCCManager sharedIntance] unregisterController:viewController]; + } + if (counter == allPresentedViewControllers.count && allPresentedViewControllers.count > 0) + { + [allPresentedViewControllers removeAllObjects]; + + if (resolve != nil) { + dispatch_async(dispatch_get_main_queue(), ^ + { + resolve(nil); + }); + } } } }