UIImagePickerController in Qt 5.3



我想为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];

最新更新