我想为iOS
实现一个应用程序。我在Mac
上使用了Qt 5.3
。我想在Qt
中定义用户界面。我想在*.ui
上有一个按钮。点击后,iOS
照片库将打开,然后用户可以选择一张照片。我知道我必须使用UIImagePickerController
。
我必须使用根控制器并在上面显示UIPickerImageController。为此,我需要使用一些内部Qt API
:
首先,在*.pro
:中
QT += gui-private
然后,在我的*.mm
代码中,获取指向Qt
应用程序的根视图控制器的指针:
UIView *view = static_cast<UIView *>( QGuiApplication::platformNativeInterface()->nativeResourceForWindow("uiview",quickView) );
UIViewController* rootCtrl = [[view window] rootViewController];
现在,我可以显示UIImagePickeController
:
[rootCtrl presentViewController:imagePickerController animated:YES completation:nil]
通过这种方式获得带有QML
的根视图控制器,解决了我的问题,但我不想使用QML
。是否有其他方法可以在不使用QML
的情况下获得指向Qt
应用程序(C++
+Objective-C
)的主根视图控制器的指针?
谢谢!
您可以使用UIApplication和keyWindow属性:
UIViewController* rootViewController = [[UIApplication sharedApplication].keyWindow rootViewController];