3

UIDocumentInteractionControllerユーザーが からファイルを選択したときに、ナビゲーション コントローラーからを表示しようとしていますtableView

interactionControllerWithURLNO を返し、デリゲート メソッドdocumentInteractionControllerViewControllerForPreviewは呼び出されず、documentInteractionコントローラーは表示されません。

ユーザーがテーブル内の項目を選択すると、次のコードが実行されます。

    NSURL *fileURL;
    fileURL = (NSURL *)[[DataMng sharedMng] getFileInFolder:self.navigationItem.title atRow:indexPath.row type:type];

    if (self.docInteractionController == nil){
        self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
        if (!self.docInteractionController) {
            NSLog(@"Selected a file with estension not supported for visualization");
            return;
        }
        self.docInteractionController.delegate = self;
    }else{
        self.docInteractionController.URL = fileURL;
    }

    if(! [self.docInteractionController presentPreviewAnimated:YES]){
        NSLog(@"ERROR in presenting preview");
    }

デリゲート コントローラー (自己) はプロトコルに準拠しUIDocumentInteractionControllerDelegate、コントローラー内のナビゲーション コントローラーTabbarです。

どんなアイデアでも大歓迎です

4

3 に答える 3

8

私は自分の質問に答えます:

docInteractionController を起動したフォームは正しく、問題は正しい拡張子 (私の場合は .pdf) のないファイル URL と、拡張フォーム (com.adobe.pdf) でなければならないコントローラー UTI にありました。

正しく設定すると、問題なくプレビューが表示されました。

于 2012-06-28T17:19:08.203 に答える
1

これらのメソッドを使用して UIDocumentInteractionController を表示します:-

-(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller

{
    return [[[[UIApplication sharedApplication] delegate]window]rootViewController];

}

-(void)documentInteractionControllerDidEndPreview:    (UIDocumentInteractionController *)controller 

{

    self.navigationController.navigationBarHidden = YES;

}
于 2015-07-22T05:19:20.583 に答える
0
if(! [self.docInteractionController presentPreviewAnimated:YES]){
        NSLog(@"ERROR in presenting preview");
    }

これはドキュメントの対話コントローラーを提示する正しい方法ではないと考えてください。以下のコードを設定してみてください

CGRect rect = CGRectMake(0, 0, 0, 0);
[self.docInteractionController presentOpenInMenuFromRect:rect inView:self.view animated:YES];

これがお役に立てば幸いです。

于 2012-06-26T13:04:23.260 に答える