2014-01-27 63 views
0

我已經創建了一個應用程序來創建PDF並將其存儲在應用程序文檔文件夾中。當按下'View pdf'UIButton時,我現在想打開它並從應用程序中查看它。在Xcode項目中打開保存在我的文檔文件夾中的pdf

我已經看過這裏的幾個問題,我已經考慮過一個單獨的視圖控制器或可能是一個滾動視圖。

什麼是最好的使用方法?

UPDATE:

我按照意見,我想使用QLPreviewController。我添加了QuickLook框架,現在有以下內容,但我堅持如何獲得在pathForResource中識別的路徑。有什麼建議麼?

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller 
{ 
return 1; 
} 

- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
{ 
NSString *path=[[NSBundle mainBundle] pathForResource:[pdfPathWithFileName] ofType:nil]; 
    return [NSURL fileURLWithPath:path]; 
} 



- (IBAction)viewPdfButton:(id)sender { 

NSString *filename= @"ObservationPDF.pdf"; 
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documnetDirectory = [path objectAtIndex:0]; 
NSString *pdfPathWithFileName = [documnetDirectory stringByAppendingPathComponent:filename]; 

[self generatePdf: pdfPathWithFileName]; 

QLPreviewController *previewController=[[QLPreviewController alloc]init]; 
previewController.delegate=self; 
previewController.dataSource=self; 
[self presentViewController:previewController animated:YES completion:nil]; 

}

+0

什麼你研究過嗎? – Wain

+0

編輯的問題來回答這個問題 - 我知道,我似乎沒有看過它,但是當我研究這個時候,似乎建議的是一個單獨的應用程序來查看它。這就是說我不想安裝一個單獨的應用程序。但是可以設置一個按鈕來打開使用Safari的網絡鏈接。對於內置於iOS的PDF查看器是否有類似的方法,或者您是否需要通過自己的視圖來完成?如果你能做到兩者哪個更好? – RGriffiths

回答

2

如果PDF文件是在應用程序文件夾,然後你不應該想着它傳遞到另一個應用程序,你應該尋找呈現在應用程序中的文件。 2個常規選項:

  1. 添加UIWebView和本地文件加載到它
  2. 使用QLPreviewController顯示包含PDF

Web視圖是簡單的一個新的觀點,並要求在沒有過渡UI。預覽控制器需要轉換,但可免費提供一些共享/打印支持。


此行是混亂(和它的外觀無效的語法):

NSString *path=[[NSBundle mainBundle] pathForResource:[pdfPathWithFileName] ofType:nil]; 

您只使用NSBundle獲得項目從捆綁的,而不是你擁有什麼。您應該只創建與文件路徑的網址,讓您保存文件:

[NSURL fileURLWithPath:pdfPathWithFileName]; 

(你可以存儲或者您可能需要以同樣的方式來重新當你保存文件)

+0

謝謝。我已經添加了我已經掌握的更新。我認爲這很接近,但不能完全達到目標。你能看到我缺少的東西嗎? – RGriffiths

相關問題