Sfoglia il codice sorgente

Respect child view controller status bar forwarding

Ryan Olson 12 anni fa
parent
commit
7054919e3e
1 ha cambiato i file con 14 aggiunte e 2 eliminazioni
  1. 14 2
      Classes/Explorer Toolbar/FLEXExplorerViewController.m

+ 14 - 2
Classes/Explorer Toolbar/FLEXExplorerViewController.m

@@ -145,7 +145,13 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     UIViewController *viewControllerToAsk = [self viewControllerForStatusBarAndOrientationProperties];
     UIViewController *viewControllerToAsk = [self viewControllerForStatusBarAndOrientationProperties];
     UIStatusBarStyle preferredStyle = UIStatusBarStyleDefault;
     UIStatusBarStyle preferredStyle = UIStatusBarStyleDefault;
     if (viewControllerToAsk && viewControllerToAsk != self) {
     if (viewControllerToAsk && viewControllerToAsk != self) {
-        preferredStyle = [viewControllerToAsk preferredStatusBarStyle];
+        // We might need to foward to a child
+        UIViewController *childViewControllerToAsk = [viewControllerToAsk childViewControllerForStatusBarStyle];
+        if (childViewControllerToAsk) {
+            preferredStyle = [childViewControllerToAsk preferredStatusBarStyle];
+        } else {
+            preferredStyle = [viewControllerToAsk preferredStatusBarStyle];
+        }
     }
     }
     return preferredStyle;
     return preferredStyle;
 }
 }
@@ -165,7 +171,13 @@ typedef NS_ENUM(NSUInteger, FLEXExplorerMode) {
     UIViewController *viewControllerToAsk = [self viewControllerForStatusBarAndOrientationProperties];
     UIViewController *viewControllerToAsk = [self viewControllerForStatusBarAndOrientationProperties];
     BOOL prefersHidden = NO;
     BOOL prefersHidden = NO;
     if (viewControllerToAsk && viewControllerToAsk != self) {
     if (viewControllerToAsk && viewControllerToAsk != self) {
-        prefersHidden = [viewControllerToAsk prefersStatusBarHidden];
+        // Again, we might need to forward to a child
+        UIViewController *childViewControllerToAsk = [viewControllerToAsk childViewControllerForStatusBarHidden];
+        if (childViewControllerToAsk) {
+            prefersHidden = [childViewControllerToAsk prefersStatusBarHidden];
+        } else {
+            prefersHidden = [viewControllerToAsk prefersStatusBarHidden];
+        }
     }
     }
     return prefersHidden;
     return prefersHidden;
 }
 }