3

アプリに を表示しようとしていますUIDocumentInteractionController。iPhone ではすべて問題なく動作していますが、iPad では何も起きていません。これが私のコードです:

    interactionController = [UIDocumentInteractionController interactionControllerWithURL:imageFile];
    interactionController.UTI = @"com.instagram.photo";
    interactionController.annotation = [NSDictionary dictionaryWithObject:[self commentForInstagram] forKey:@"InstagramCaption"];
    [interactionController presentOpenInMenuFromRect:self.view.frame inView:self.view animated:YES];

interactionControllerインスタンスへの強い参照であり、imageFile存在します。iPhone では、[Open With..] ダイアログが表示され、Instagram が表示されます。iPad では、上記のコードを実行しても何も起こりません。はい、Instagram をインストールして、iPad で作業しています。

コードの実行時に何も起こらない理由は何でしょうか? self.viewおよびself.view.frame有効なオブジェクトです (デバッグでテスト済み)。

ありがとう、カン。

4

6 に答える 6

4

iPad の場合、次の 2 つの条件を満たす必要があります。

  1. DocumentActionMenu の領域を定義する

    CGRect rect = CGRectMake(0.0, 0.0, 0.0, 0.0);

    [interactionController presentOpenInMenuFromRect:rect inView:self.view animation:YES];

  2. シミュレーターではなくiPad を使用する

于 2015-07-20T21:29:00.403 に答える
3

を使用しpresentOptionsMenuFromRect:inView:animated:ます。

たとえば、メニューを下から表示する場合は、次のようにします。

[interactionController presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES];
于 2013-12-02T18:35:19.210 に答える
1

今日も同じ問題がありました。

まず、frameビューの を に渡さないでくださいpresentOptionsMenuFromRect:inView:animated。指定された四角形は、ビューの座標にあると想定されています。ビューのframeは、ビューのスーパービューの座標にあります。

iPhone では、ビューの を渡すことboundsは機能しましたが、iPad では、Xcode (7.2.1) は満たされない制約について文句を言い、ドキュメント インタラクション コントローラーのビュー (DIC) を表示しませんでした。

の代わりに、DIC をビューの左上隅に固定する最初のパラメーターとしてbounds渡そうとしました。CGRectZeroこれは機能しますが、見た目が悪いです。

ビューの下端の中央に DIC を配置するために、ビューのCGSizeZero下端の中央に配置されたサイズの rect を指定できます (ビューのboundsを使用して位置を計算します)。これは機能し、問題なく見えます。

于 2016-09-23T06:55:33.833 に答える