Ios PresentOpenMinumeFromRect的未定义的self.view

Ios PresentOpenMinumeFromRect的未定义的self.view,ios,rhomobile,Ios,Rhomobile,我正在尝试将“PresentOpenMinumeFromRect”功能添加到Rhomobile中。但是,我很难引用当前视图 Rhomobile函数(####标记我添加的内容): 基本上,如果预览失败,我想打开“打开”菜单,因为我;M试图打开.KMZ(Google Earth KML文件),但无法预览 完整源代码: 谢谢 Nick,AppManager类继承自NSObject而非UIViewController-为什么它会有一个名为视图的属性?您必须找到另一种方式来显示视图或视图控制器(可能使用应

我正在尝试将“PresentOpenMinumeFromRect”功能添加到Rhomobile中。但是,我很难引用当前视图

Rhomobile函数(####标记我添加的内容):

基本上,如果预览失败,我想打开“打开”菜单,因为我;M试图打开.KMZ(Google Earth KML文件),但无法预览

完整源代码:

谢谢


Nick,

AppManager类继承自NSObject而非UIViewController-为什么它会有一个名为
视图的属性?您必须找到另一种方式来显示视图或视图控制器(可能使用应用程序的主窗口)。

以下是解决我的问题的代码:

  - (void)openDocInteractCommand:(NSString*)url { // inView:(UIView*)view
if (NSClassFromString(@"UIDocumentInteractionController")) {
    NSURL *fileURL = [NSURL fileURLWithPath:url];

    UIDocumentInteractionController* docController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];

    docController.delegate = self;//[AppManager instance];

    BOOL result = [docController presentPreviewAnimated:YES];

    if (!result) {
        [docController retain];
        CGPoint centerPoint = [Rhodes sharedInstance].window.center;
        CGRect centerRec = CGRectMake(centerPoint.x, centerPoint.y, 0, 0);
        BOOL isValid = [docController presentOpenInMenuFromRect:centerRec inView:[Rhodes sharedInstance].window animated:YES];
    }
}
}

- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)docController
{
[docController autorelease];
}

好吧,我是新手。你能从消息来源知道如何到达主窗口吗?我尝试了以下方法:BOOL isValid=[docController presentonpeninmenufromrect:CGRectMake(300300100100)inView:[Rhodes sharedInstance]。窗口动画:YES];但它给出了以下错误:**由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“-[UIPopoverController dealloc]在popover仍然可见时到达。”---我从未看到“在中打开…”菜单。@user506706您可以使用[[UIApplication sharedApplication]keyWindow],但我认为这与此不太相关…:(使用此解决方案解决此问题:
  - (void)openDocInteractCommand:(NSString*)url { // inView:(UIView*)view
if (NSClassFromString(@"UIDocumentInteractionController")) {
    NSURL *fileURL = [NSURL fileURLWithPath:url];

    UIDocumentInteractionController* docController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];

    docController.delegate = self;//[AppManager instance];

    BOOL result = [docController presentPreviewAnimated:YES];

    if (!result) {
        [docController retain];
        CGPoint centerPoint = [Rhodes sharedInstance].window.center;
        CGRect centerRec = CGRectMake(centerPoint.x, centerPoint.y, 0, 0);
        BOOL isValid = [docController presentOpenInMenuFromRect:centerRec inView:[Rhodes sharedInstance].window animated:YES];
    }
}
}

- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)docController
{
[docController autorelease];
}