2016-09-02 3 views
2

iOSアプリケーションを使用して、私たちのウェブサイトにあるpdfファイルを表示しようとしています。ここで私はこれをやっている方法は次のとおりです。Swiftを使用してUIWebViewにリモートロケーションからPDFファイルを表示する方法は?

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     print("preparing segue") 
     if segue.identifier == "PdfWebView" { 

      print("Found segue") 

      let detailViewController = segue.destinationViewController as! PdfViewController 

      let myIndexPath = self.tableView.indexPathForSelectedRow! 

      let row = myIndexPath.row 


      //Pass selected cell title to next View 
      detailViewController.website = pdfLinks[row] 

      print("Website: ", detailViewController.website) 
     } 
    } 

// This is on pdfViewController // The webiste = http://www.example.com/some-pdf-document-to-display.pdf

if let website = website { 
    print("Getting pdf: ",website) 

    if let pdf = NSBundle.mainBundle().URLForResource(website, withExtension: "pdf", subdirectory: nil, localization: nil){ 

     print(pdf) // <-- this is always nil 
     let req = NSURLRequest(URL: pdf) 

     webView.loadRequest(req) 
     self.view.addSubview(webView) 

    } 


} 

私が間違って何をしているのですか?言うまでもなく、これは私が開発している私の最初のアプリです。

答えて

2

ファイルがアプリにない場合は、NSBundleを使用しないでください。

let pdfUrl = NSURL(string: website) 
let req = NSURLRequest(URL: pdfUrl) 

WebViewサブビューをビューに追加する理由もわかりません。それは他の場所で行われるべきではありませんか?代わりにwebviewでコントローラを押すべきではありませんか?

+0

これはうまくいきました。これは私が欲しかったものです。サブビュー内のwebViewは無視してください。私はできることを見つけようとしていましたが、なぜそれが表示されないのかを見極めようとしていました。私は今それを削除しました。 – user1828605

1

ファイルはバンドルにありません。代わりにURLを直接ロードすることができます。

let website = "http://www.sanface.com/pdf/test.pdf" 
let reqURL = NSURL(string: website) 
let request = NSURLRequest(URL: reqURL!) 

webView.loadRequest(request) 
関連する問題