2017-06-19 7 views
1

これは今日の最も疑問にされていますが、私はそれを得ていません。 Quicklookを作成しますが、これは正常です。 Doneボタンを押すと、もう一度表示されます。完了ボタンをインターセプトするにはどうすればよいですか?または、より一般的には、私が想定しているものがナビバーであることを制御します。関連するコードは次のとおりです。Quicklook、Objective Cの後に完了ボタンを処理する

- (void)viewDidAppear:(BOOL)animated 
{ 

    [super viewDidAppear:animated]; 

    /* 
    * get the path to the pdf resource. 
    */ 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"article" ofType:@"pdf"]; 
    NSURL *docURL = [NSURL fileURLWithPath:path]; 


    /* 
    * create the Quicklook controller. 
    */ 

    QLPreviewController *qlController = [[QLPreviewController alloc] init]; 

    PreviewItem *item = [[PreviewItem alloc] initPreviewURL:docURL WithTitle:@"Article"]; 
    self.pdfDatasource = [[PDFDataSource alloc] initWithPreviewItem:item]; 
    qlController.dataSource = self.pdfDatasource; 


    /* 
    * present the document. 
    */ 

    [self presentViewController:qlController animated:YES completion:nil]; 
} 

私は何かが明らかでないと思います。

は ケン

答えて

0

は、あなたがのviewDidLoadに、あなたのViewDidAppearコードを撮影しようとしたんでした、ありがとう!完了ボタンをクリックすると、ViewDidLoadを除いてコントローラのすべてのビューが再びロードされます。クイックビュービューが再び表示されます。ちょうど試してください

+0

私はこの警告や空白の画面が出ます: 2017年6月19日09:24:57.080342から0700警告:試みが提示するは、ビューウィンドウではありません階層! (私は決して完了ボタンを押す機会を得ることはありません)。しかし、ありがとう。 – user938797

+1

大丈夫ですので、あなたが直面している問題を見ました。あなたはviewDidAppearでクイックビューを表示するためにブール値を渡すことができます。 viewDidAppearでコードを記述しますが、boolのチェックを行います。viewDidLoadの値はboolの値を1にして、ビューが表示され、ビューの終了時にboolの値が0になるとviewDidAppearのコードは再びロードされませんあなたはboolを1にリフレッシュしないで、新しいpdfを表示するときのようにいつでもこのboolを1にすることができます。 –

+0

はい、それはうまくいくと思うが、正しいと信じなければならない"答え、おそらく代議員と関係があります。私は今あなたがショットを提案するものを与えるでしょう。ありがとう。 – user938797

0

トリックは、元のviewcontrollerにすべてをロールバックすることでした。そのようにして、完了ボタンを押すと元のviewcontrollerに戻ります。これはまさに私が望んでいたものです。別のクラスを用意する代わりに、私のビューコントローラにコールを組み込んだだけです。私は、代議員の狡猾な使い方をする方法はまだあると思っていますが、他の誰かが同じ問題を抱えている場合には、これは私のために働く解決策でした。

ご協力いただきありがとうございます。 ケン

関連する問題