Explorar o código

dismiss previous present viewController before present a new one

王 原闯 %!s(int64=10) %!d(string=hai) anos
pai
achega
3df01ee7bb
Modificáronse 1 ficheiros con 10 adicións e 0 borrados
  1. 10 0
      Classes/ExplorerToolbar/FLEXExplorerViewController.m

+ 10 - 0
Classes/ExplorerToolbar/FLEXExplorerViewController.m

@@ -841,6 +841,7 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     if (viewsModalShown) {
         [self resignKeyAndDismissViewControllerAnimated:YES completion:nil];
     } else {
+        [self dismissPreviousPresentViewController];
         NSArray *allViews = [self allViewsInHierarchy];
         NSDictionary *depthsForViews = [self hierarchyDepthsForViews:allViews];
         FLEXHierarchyTableViewController *hierarchyTVC = [[FLEXHierarchyTableViewController alloc] initWithViews:allViews viewsAtTap:self.viewsAtTapPoint selectedView:self.selectedView depths:depthsForViews];
@@ -857,6 +858,7 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     if (menuModalShown) {
         [self resignKeyAndDismissViewControllerAnimated:YES completion:nil];
     } else {
+        [self dismissPreviousPresentViewController];
         FLEXGlobalsTableViewController *globalsViewController = [[FLEXGlobalsTableViewController alloc] init];
         globalsViewController.delegate = self;
         [FLEXGlobalsTableViewController setApplicationWindow:[[UIApplication sharedApplication] keyWindow]];
@@ -865,6 +867,14 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     }
 }
 
+- (BOOL)dismissPreviousPresentViewController{
+    BOOL needDismissBeforePresent = self.previousKeyWindow && (self.previousKeyWindow != [UIApplication sharedApplication].keyWindow);
+    if (needDismissBeforePresent) {
+        [self resignKeyAndDismissViewControllerAnimated:NO completion:nil];
+    }
+    return needDismissBeforePresent;
+}
+
 - (void)handleDownArrowKeyPressed
 {
     if (self.currentMode == FLEXExplorerModeMove) {