我正在尝试使用位于我们网站上的iOS应用程序显示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)
}
}
我做错了什么?不用说,这是我正在开发的第一个应用程序。
答案 0 :(得分:3)
如果文件不在您的应用程序中,则不应使用NSBundle。
let pdfUrl = NSURL(string: website)
let req = NSURLRequest(URL: pdfUrl)
我也不确定您为什么要将webView子视图添加到视图中。不应该在其他地方做吗?你不应该用webview推动一个控制器吗?
答案 1 :(得分:2)
文件不在你的Bundle中。相反,您可以直接加载网址。
let website = "http://www.sanface.com/pdf/test.pdf"
let reqURL = NSURL(string: website)
let request = NSURLRequest(URL: reqURL!)
webView.loadRequest(request)