2016-12-31 3 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. Но даже после применения этого предложения исправления существует много других ошибок, и когда я их исправляю, то все равно ничего не работает. Таким образом, должна быть разница между Swift 1 (или 2) и Swift 3 при показе pdf-документа.

Или я что-то пропустил?

+0

QLPreviewController вы также можете попробовать это, чтобы открыть PDF на кнопки. –

ответ

3

Попробуйте этот код для загрузки локальной PDF внутри WebView: -

NSBundle now in Swift 3 version as a Bundle 

Swift 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 Есть ли способ включить печать этого pdf для пользователя в веб-просмотре? – Lupo

Смежные вопросы