Ensure 'link new device' view is portrait.

pull/1/head
Matthew Chen 6 years ago
parent bf685776be
commit 6bfe0f0418

@ -15,11 +15,19 @@ NS_ASSUME_NONNULL_BEGIN
- (UIViewController *)findFrontmostViewController:(BOOL)ignoringAlerts - (UIViewController *)findFrontmostViewController:(BOOL)ignoringAlerts
{ {
NSMutableArray<UIViewController *> *visitedViewControllers = [NSMutableArray new];
UIViewController *viewController = self; UIViewController *viewController = self;
while (YES) { while (YES) {
[visitedViewControllers addObject:viewController];
UIViewController *_Nullable nextViewController = viewController.presentedViewController; UIViewController *_Nullable nextViewController = viewController.presentedViewController;
if (nextViewController) { if (nextViewController) {
if (!ignoringAlerts || ![nextViewController isKindOfClass:[UIAlertController class]]) { if (!ignoringAlerts || ![nextViewController isKindOfClass:[UIAlertController class]]) {
if ([visitedViewControllers containsObject:nextViewController]) {
// Cycle detected.
return viewController;
}
viewController = nextViewController; viewController = nextViewController;
continue; continue;
} }
@ -27,8 +35,13 @@ NS_ASSUME_NONNULL_BEGIN
if ([viewController isKindOfClass:[UINavigationController class]]) { if ([viewController isKindOfClass:[UINavigationController class]]) {
UINavigationController *navigationController = (UINavigationController *)viewController; UINavigationController *navigationController = (UINavigationController *)viewController;
if (navigationController.topViewController) { nextViewController = navigationController.topViewController;
viewController = navigationController.topViewController; if (nextViewController) {
if ([visitedViewControllers containsObject:nextViewController]) {
// Cycle detected.
return viewController;
}
viewController = nextViewController;
} else { } else {
break; break;
} }

Loading…
Cancel
Save