summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios/qiosglobal.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/ios/qiosglobal.mm')
-rw-r--r--src/plugins/platforms/ios/qiosglobal.mm8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/platforms/ios/qiosglobal.mm b/src/plugins/platforms/ios/qiosglobal.mm
index 5860078372..d26eca54e5 100644
--- a/src/plugins/platforms/ios/qiosglobal.mm
+++ b/src/plugins/platforms/ios/qiosglobal.mm
@@ -58,10 +58,14 @@ bool isQtApplication()
return isQt;
}
-QIOSViewController *rootViewController()
+QIOSViewController *qiosViewController()
{
+ // If Qt controls the application, we have created a root view controller were we place top-level
+ // QWindows. Note that in a mixed native application, our view controller might later be removed or
+ // added as a child of another controller. To protect against that, we keep an explicit pointer to the
+ // view controller in cases where this is the controller we need to access.
static QIOSViewController *c = isQtApplication() ?
- static_cast<QIOSViewController *>([UIApplication sharedApplication].delegate.window.rootViewController) : nil;
+ static_cast<QIOSApplicationDelegate *>([UIApplication sharedApplication].delegate).qiosViewController : nil;
return c;
}