summaryrefslogtreecommitdiff
path: root/platform/ios/src/UIViewController+MGLAdditions.m
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/src/UIViewController+MGLAdditions.m')
-rw-r--r--platform/ios/src/UIViewController+MGLAdditions.m22
1 files changed, 22 insertions, 0 deletions
diff --git a/platform/ios/src/UIViewController+MGLAdditions.m b/platform/ios/src/UIViewController+MGLAdditions.m
new file mode 100644
index 0000000000..746fdd8db8
--- /dev/null
+++ b/platform/ios/src/UIViewController+MGLAdditions.m
@@ -0,0 +1,22 @@
+#import "UIViewController+MGLAdditions.h"
+
+@implementation UIViewController (MGLAdditions)
+
+- (UIViewController *)mgl_topMostViewController
+{
+ if ([self isKindOfClass:[UINavigationController class]])
+ {
+ return [[(UINavigationController *)self visibleViewController] mgl_topMostViewController];
+ }
+ else if ([self isKindOfClass:[UITabBarController class]])
+ {
+ return [[(UITabBarController *)self selectedViewController] mgl_topMostViewController];
+ }
+ else if (self.presentedViewController)
+ {
+ return [self.presentedViewController mgl_topMostViewController];
+ }
+ return self;
+}
+
+@end