2016-11-14 22 views
0

ここに私のコードです。これは冗長な質問のように聞こえるかもしれませんが、私のシナリオは、サブビューとしてQLPreviewControllerを追加していないが、コントローラとして存在しているので違います。QLPreviewControllerデリゲートメソッドはiOS 10では呼び出されませんが、iOS 10より前に実行された場合に呼び出されます

ドロップボックスからダウンロードした後、私は

self.pdfViewController = [[QLPreviewController alloc] init]; 
    self.pdfViewController.delegate = self; 
    self.pdfViewController.dataSource = self; 

    [self presentViewController:self.pdfViewController animated:YES completion:nil]; 

like-それを提示し、私はまた、プロトコルとしてQLPreviewControllerDataSource, QLPreviewControllerDelegateを列挙しています。また、iOS 10.0より前のバージョンで動作している場合は動作しています。

私を助けてください。

+0

デリゲートメソッドは呼び出されません。 –

+0

- (BOOL)previewController :(QLPreviewController *)コントローラshouldOpenURL:(NSURL *)url forPreviewItem:(id )アイテム、実際にはデリゲートです。 – Natasha

+0

これは最新のiOS 10.2ベータ版で修正する必要があります –

答えて

0

iOS 10がQLPreviewControllerの方法を変更したようです。 iOS 9では、画像をプレビューするときにQLPreviewControllerをモーダルに表示するとすばらしいズームエフェクトが表示され、プレビューの初期状態は黒い背景になり、ナビゲーションとツールバーは非表示になります。私はバーを表示させるために画像をタップすることができます(背景が白に変わります)。もう一度タップすると状態が切り替わります。

iOS 10では、同じコードを使用すると白い背景ビューが表示され、ズームアニメーションは正しく表示されません(画面の下部から表示されるように見えます)。 previewController:frameForPreviewItem:inSourceView:は、(元のコンテンツのフレームの基準として使用されていることを

- (UIView* _Nullable)previewController:(QLPreviewController *)controller 
      transitionViewForPreviewItem:(id <QLPreviewItem>)item 
{ 
    return [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:MIDPhotoImageRowIndex_Image inSection:MIDPhotoSectionIndex_Image]]; 
} 

私は返すビューが同じビューである:

私はiOSの10のために、この実質的に文書化されていない新しいデータソースのメソッドを実装する問題を修正しましたことを発見しました私のテーブルセルの画像ビュー)。

このデリゲートメソッドの執筆時点でのdocumentationは、「概要が利用できません」と表示されます。

このメソッドを実装したことは、previewController:frameForPreviewItem:inSourceView:がiOS 10で呼び出されたことを意味しています。ナビゲーションバーのない元の黒い背景にデフォルト設定することができたらと思います。

関連する問題