11

iOS5 用に構築された instagram と共有するアプリがあり、現在は iOS6 で、共有は機能しませんが、canOpenURLtrue を返し、コードが実行されます。画像はアプリケーションのドキュメントフォルダに.igo拡張子を付けて保存されます。これは com.instagram.exclusivegram で instagram に渡されます。

コードは以下のとおりです。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正しいファイルパスも提供しています。

ありがとう、ニック

4

2 に答える 2

11

いくつかのテストを行い、解決策を見つけました。keyWindow には表示しないでください。

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

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

于 2012-10-14T22:33:19.680 に答える
0

uidocumentinteraction コントローラーが iOS6 で機能しないもう 1 つの理由は、新しいアクション シート/起動パネル (ドキュメントを開くために使用できるアプリを表示する) が使用されるようになったことです。iOS5 で iBooks を正常に起動していたアプリが失敗しました。これは、早すぎる viewDidLoad から起動し、現在のビュー コントローラーで「ビューがウィンドウ階層にない」というエラーが発生したため、遅延後にコードを performselector に変更したためです。 1秒。アプリは新しいパネルを介して iBooks を呼び出すようになりました。

于 2012-11-16T16:54:22.130 に答える