我有一個加載嵌入SoundCloud軌道的UIWebView。我從網站複製了代碼,創建了一個html文件,並將其包含在Xcode項目中。它裝載完美罰款;但是,我希望用戶能夠重新加載WebView,因爲UIWebView非常小,並且沒有任何導航按鈕。它只是顯示SoundCloud嵌入部件。以編程方式實現UIButton的UIWebView重載(Swift)
有沒有辦法實現這個沒有使用接口生成器?點擊按鈕時,應用程序崩潰。
我已經實現了的UIWebView和的UIButton到屏幕編程因爲大小和每個座標將取決於iPhone的屏幕大小是不同的。
的UIWebView中在viewDidLoad中功能之前設置爲零,因此它可以被訪問在其它功能(如重載功能)。
class SecondViewController: UIViewController, UIWebViewDelegate {
let WebView: UIWebView! = nil
override func viewDidLoad() {
super.viewDidLoad()
let WebViewDetails = getCoordAndSize("WEBV") // stores 4 values into one variable. its a tuple
let WebView = UIWebView(frame: CGRectMake(WebViewDetails.0, WebViewDetails.1, WebViewDetails.2, WebViewDetails.3))
//load local html file
let localfilePath = NSBundle.mainBundle().URLForResource("sctrack", withExtension: "html")
let myRequest = NSURLRequest(URL: localfilePath!)
WebView.loadRequest(myRequest)
WebView.delegate = self
let refreshButton = UIButton()
refreshButton.setTitle("Refresh", forState: .Normal)
refreshButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
refreshButton.backgroundColor = UIColor.clearColor()
refreshButton.layer.cornerRadius = 5
refreshButton.layer.borderWidth = 1
refreshButton.layer.borderColor = UIColor.whiteColor().CGColor
refreshButton.frame = CGRectMake((self.view.frame.size.width - 240)/2, (imageViewDetails.2 - 40),240,40)
//(LOOK HERE) BUTTON ACTION . What I want it to do is to reload html file when user taps on it
refreshButton.addTarget(self, action: #selector(reload), forControlEvents: .TouchUpInside)
self.view.addSubview(refreshButton)
}
下面是爲refreshButton功能。當用戶點擊按鈕時,它調用重載功能。我想要它重新加載本地文件。我添加的註釋說:「ERROR這裏」
func reload(sender: UIButton!) {
//ERROR HERE
WebView.reload()
let alertView = UIAlertController(title: "Message", message: "Track refreshed! Enjoy ✨", preferredStyle: .Alert)
// Initialize Actions
let okAction = UIAlertAction(title: "Ok", style: .Default) { (action) -> Void in
}
alertView.addAction(okAction)
self.presentViewController(alertView, animated: true, completion: nil)
}
}
我一直在努力,包括重載函數內的HTML請求,並使用WebView.loadRequest(myRequest)的代替WebView.reload,但應用仍然崩潰。
非常感謝@Santosh !.我從課堂級別和viewDidLoad中刪除,它的作品!令人驚歎的是,兩個單詞如何使應用程序崩潰。 – codeherk
太棒了!請接受這個答案;) – Santosh