2012-09-27 16 views
11

iOS5用に構築されたiOS5用のiアプリと共有するアプリがあり、iOS6では共有はもはや機能しません。canOpenURLがtrueを返してコードが実行されます。イメージは、.igo拡張子を持つアプリケーションのドキュメントフォルダに保存されます。これはcom.instagram.exclusivegramでinstagramに渡されます。UIDocumentInteractionControllerがiOS6で動作しなくなった

コードはif文に入り、「ここに」表示されますが、画面の下部にあった[共有する]ダイアログボックスは表示されません。

 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も正しいファイルパスを提供しています。

はいくつかのテストを行なったし、解決策を見つけた ニック

答えて

11

、ありがとうございます。 keyWindowには表示しないでください。

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

私はこれをテストして問題を解決します。

+0

ありがとう、私はこれを考え出して投稿するのを忘れました!良い発見 –

+0

ありがとう、これは動作します。しかし、 "Open In"というアクションシートを使わずにInstagramに直接行く方法はありますか? – GeneCode

0

uidocumentインタラクションコントローラがiOS6で動作しないもう1つの理由は、新しいアクションシート/起動パネル(ドキュメントを開くためのアプリが表示される)が使用されていることです。遅すぎるviewDidLoadから起動し、ビューがウィンドウ階層に表示されていない現在のビューコントローラでエラーが発生したため、iOS5を使ってiBookを起動すると失敗したアプリが遅れてしまったので、コードをperformselectorに変更しました1秒。アプリは新しいパネルからiBooksに電話するようになりました。

関連する問題