我有一个应用程序,它与为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
也提供了正确的文件路径。
谢谢你, 尼克
答案 0 :(得分:11)
刚做了一些测试并找到了解决方案。不要出现在keyWindow中。
[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];
我测试了这个,它将解决问题。
答案 1 :(得分:0)
uidocumentinteraction控制器无法在iOS6中运行的另一个原因是现在使用新的操作表/启动面板(它显示可用于打开文档的应用程序)。使用iOS5的iBooks运行良好的应用程序失败,因为我从viewDidLoad启动,现在太早了,我在当前视图控制器上看到错误,其视图不在窗口层次结构中,所以我在延迟后将代码更改为执行选择器1秒。该应用程序现在通过新面板调用iBooks。