Skip to content

Commit 5a39cf1

Browse files
authored
Use UIApplication.connectedScenes on iOS 13 (#4066)
1 parent 53e9186 commit 5a39cf1

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

Firebase/Auth/Source/Utilities/FIRAuthDefaultUIDelegate.m

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,26 @@ - (void)dismissViewControllerAnimated:(BOOL)flag completion:(nullable void (^)(v
7070
applicationClass = cls;
7171
}
7272
}
73-
UIApplication *application = [applicationClass sharedApplication];
74-
UIViewController *topViewController = application.keyWindow.rootViewController;
73+
74+
UIViewController *topViewController;
75+
if (@available(iOS 13.0, tvOS 13.0, *)) {
76+
UIApplication *application = [applicationClass sharedApplication];
77+
NSSet<UIScene *> * connectedScenes = application.connectedScenes;
78+
for (UIScene *scene in connectedScenes) {
79+
if ([scene isKindOfClass:[UIWindowScene class]]) {
80+
UIWindowScene *windowScene = (UIWindowScene *)scene;
81+
for (UIWindow *window in windowScene.windows) {
82+
if (window.isKeyWindow) {
83+
topViewController = window.rootViewController;
84+
}
85+
}
86+
}
87+
}
88+
} else {
89+
UIApplication *application = [applicationClass sharedApplication];
90+
topViewController = application.keyWindow.rootViewController;
91+
}
92+
7593
while (true){
7694
if (topViewController.presentedViewController) {
7795
topViewController = topViewController.presentedViewController;

0 commit comments

Comments
 (0)