2016-12-31 1 views
1

ボタンを押して、WebViewで特定のPDF文書を開くようにします。私はいくつかのチュートリアルを試しましたが、それらはすべて時代遅れです(私は思っています)。これまでのコード:Xcode 8 Swift 3ボタンプレスでpdfファイルを表示

import UIKit 

class ViewController: UIViewController { 

    @IBAction func show(_ sender: Any) { 
     let url = NSBundle.mainBundle().URLForResource("file", withExtension: "pdf") 

     if let url = url { 
      let webView = UIWebView(frame: self.view.frame) 
      let urlRequest = NSURLRequest(URL: url) 
      webView.loadRequest(urlRequest) 

      view.addSubview(webView) 
     } 
    } 

    @IBOutlet weak var webView: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

しかしNSBundleは存在しません。それはBundleに改名されました。しかし、この修正提案を適用した後でさえ、多くの他の多くのエラーがあり、それらをすべて修正しても何も動作しません。だから、スウィフト1(または2)とスウィフト3の間には、pdf文書を表示する際に違いがなければならない。

何か迷っていますか?

+0

あなたはまた、ボタンの押しでPDFを開くには、これを試すことができQLPreviewController。 –

答えて

3

は、WebViewの内部で負荷ローカルPDFのために、このコードを試してください: -

NSBundle now in Swift 3 version as a Bundle 

スウィフト3

if let pdf = Bundle.main.url(forResource: "file", withExtension: "pdf", subdirectory: nil, localization: nil) { 
     let req = NSURLRequest(url: pdf) 
     let webView = UIWebView(frame: CGRect(x:0,y:0,width:self.view.frame.size.width,height: self.view.frame.size.height-40)) //Adjust view area here 
     webView.loadRequest(req as URLRequest) 
     self.view.addSubview(webView) 
} 
+0

Coll、うまくいった。ありがとうございました:D – Lupo

+0

* cool webviewでそのユーザーのpdfを印刷する方法はありますか? – Lupo

関連する問題