11

我有一个与为 iOS5 构建的 instagram 共享的应用程序,现在在 iOS6 中,共享不再有效,尽管canOpenURL返回 true 并且代码执行。图像以.igo扩展名保存到应用程序的文档文件夹中。这通过 com.instagram.exclusivegram 传递给 instagram。

代码如下,它进入 if 语句并显示“here in”,但没有像以前在屏幕底部那样打开 Share With 对话框。

        NSLog(@"%@", _imgToUpload);
        NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];
        if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
            uidController = [[UIDocumentInteractionController alloc] init];
            //imageToUpload is a file path with .igo file extension
            uidController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:_imgToUpload]];
            uidController.UTI = @"com.instagram.exclusivegram";
            uidController.delegate = self;
            CGRect navRect = self.view.frame;
            [uidController presentOpenInMenuFromRect:navRect inView:[UIApplication sharedApplication].keyWindow animated:YES];
            NSLog(@"here in");
        }

_imgToUpload也提供了正确的文件路径。

谢谢你,尼克

4

2 回答 2

11

刚刚做了一些测试并找到了解决方案。不要出现在 keyWindow 中。

[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];

我已经对此进行了测试,它将解决问题。

于 2012-10-14T22:33:19.680 回答
0

uidocumentinteraction 控制器在 iOS6 中不起作用的另一个原因是现在使用了新的操作表/启动面板(它显示了可用于打开文档的应用程序)。我的应用程序在使用 iOS5 启动 iBooks 时运行良好但失败了,因为我从 viewDidLoad 启动现在还为时过早,并且我在当前视图控制器上出现错误“其视图不在窗口层次结构中”,所以我在延迟后将代码更改为 performselector 1秒。该应用程序现在通过新面板调用 iBooks。

于 2012-11-16T16:54:22.130 回答