diff options
Diffstat (limited to 'src/plugins/platforms/ios/qiosglobal.mm')
-rw-r--r-- | src/plugins/platforms/ios/qiosglobal.mm | 8 |
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; } |