Просмотр исходного кода

Merge pull request #92 from WangHengHeng/master

- (void)toggle***Tool - It is not necessary to 'dismiss' when 'present'
Ryan Olson лет назад: 10
Родитель
Сommit
727943c4b3
1 измененных файлов с 10 добавлено и 2 удалено
  1. 10 2
      Classes/ExplorerToolbar/FLEXExplorerViewController.m

+ 10 - 2
Classes/ExplorerToolbar/FLEXExplorerViewController.m

@@ -841,7 +841,7 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     if (viewsModalShown) {
         [self resignKeyAndDismissViewControllerAnimated:YES completion:nil];
     } else {
-        [self resignKeyAndDismissViewControllerAnimated:NO completion:nil];
+        [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];
@@ -858,7 +858,7 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     if (menuModalShown) {
         [self resignKeyAndDismissViewControllerAnimated:YES completion:nil];
     } else {
-        [self resignKeyAndDismissViewControllerAnimated:NO completion:nil];
+        [self dismissPreviousPresentViewController];
         FLEXGlobalsTableViewController *globalsViewController = [[FLEXGlobalsTableViewController alloc] init];
         globalsViewController.delegate = self;
         [FLEXGlobalsTableViewController setApplicationWindow:[[UIApplication sharedApplication] keyWindow]];
@@ -867,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) {