2

我想为iOS. 我用过Qt 5.3Mac我想在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. Qt是否有另一种方法可以在不使用的情况下获取指向应用程序(C+++ Objective-C)的主根视图控制器的指针QML

谢谢!

4

1 回答 1

3

您可以使用 UIApplication 和 keyWindow 属性:

UIViewController* rootViewController = [[UIApplication sharedApplication].keyWindow rootViewController];
于 2015-06-11T11:55:15.260 回答