diff --git a/Pod/Classes/Internal/UIViewController+SEGScreen.m b/Pod/Classes/Internal/UIViewController+SEGScreen.m index 0b7b94f5f..bf4646c4e 100644 --- a/Pod/Classes/Internal/UIViewController+SEGScreen.m +++ b/Pod/Classes/Internal/UIViewController+SEGScreen.m @@ -44,24 +44,24 @@ + (UIViewController *)seg_topViewController + (UIViewController *)seg_topViewController:(UIViewController *)rootViewController { - if (rootViewController.presentedViewController == nil) { - return rootViewController; + UIViewController *presentedViewController = rootViewController.presentedViewController; + if (presentedViewController != nil) { + return [self seg_topViewController:presentedViewController]; } - if ([rootViewController.presentedViewController isKindOfClass:[UINavigationController class]]) { - UINavigationController *navigationController = (UINavigationController *)rootViewController.presentedViewController; - UIViewController *lastViewController = [[navigationController viewControllers] lastObject]; + if ([rootViewController isKindOfClass:[UINavigationController class]]) { + UIViewController *lastViewController = [[(UINavigationController *)rootViewController viewControllers] lastObject]; return [self seg_topViewController:lastViewController]; } - UIViewController *presentedViewController = (UIViewController *)rootViewController.presentedViewController; - return [self seg_topViewController:presentedViewController]; + return rootViewController; } - (void)seg_viewDidAppear:(BOOL)animated { UIViewController *top = [UIViewController seg_topViewController]; if (!top) { + SEGLog(@"Could not infer screen."); return; }