【发布时间】:2014-10-25 08:59:11
【问题描述】:
我想为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) 的主根视图控制器的指针?
谢谢!
【问题讨论】:
标签: objective-c uiimagepickercontroller qt5.3