我试图加载一个午餐菜单PDF到一个我正在更新的高中应用程序的网页视图。目前,它可以将PDF加载到web视图中并显示得很好,但我希望通过让我的应用程序通过Parse接收链接来加快每月的更新过程(这比用Apple的7天回顾期更新应用程序本身的链接要快得多),然后加载PDF。目前,与我已经放在一起,我的应用程序不会加载PDF。以下是整个视图:
import UIKit
class AlaCarte_ViewController: UIViewController {
@IBOutlet weak var webviewAlaCarte: UIWebView!
var urlpath = String()
func loadAddressUrl(){
let requestURL = NSURL (string:urlpath)
let request = NSURLRequest(URL: requestURL!)
webviewAlaCarte.loadRequest(request)
alaCarteUpdate()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
clearPDFBackground(self.webviewAlaCarte)
}
func clearPDFBackground(webView: UIWebView) {
var view :UIView?
view = webView as UIView
while view != nil {
if NSStringFromClass(view?.dynamicType) == "UIWebPDFView" {
view?.backgroundColor = UIColor.clearColor()
}
view = view?.subviews.first as! UIView?
}
}
func alaCarteUpdate() {
var query = PFQuery(className: "AlaCarte")
query.getObjectInBackgroundWithId("rT7MpEFySU") {(AlaCarte: PFObject!, error: NSError!)-> Void in
if error == nil && AlaCarte != nil {
println(AlaCarte)
} else {
println(error)
}
let AlaCarteLink = AlaCarte["webaddress"] as! String
self.urlpath = AlaCarteLink
}
}
override func viewDidLoad() {
super.viewDidLoad()
loadAddressUrl()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}该链接存储在我的分析应用程序作为“网站地址”,不包含最终报价。添加它们没有帮助。有什么想法吗?
发布于 2015-05-05 01:02:49
在我看来,一旦从Parse检索到URL,您就不会告诉web视图加载URL。
尝试在self.urlpath = AlaCarteLink之后添加alaCarteUpdate()中的以下行。
let requestURL = NSURL (string:self.urlpath)
let request = NSURLRequest(URL: requestURL!)
self.webviewAlaCarte.loadRequest(request)我认为添加一个函数,专门将url字符串加载到您的web视图中也是一个好主意,这样您就可以在alaCarteUpdate()和loadAddressUrl()中调用它,并避免重复的3x行。我假设您在loadAddressURL()中加载URL,以便在从Parse检索最新的文件时显示本地/缓存的文档。
https://stackoverflow.com/questions/30041187
复制相似问题