我一直在尝试用 Swift 制作一个网络浏览器,但进展并不顺利。
我想知道为什么每次输入 webView.delegate = self
时都会出错。
import UIKit
class MapViewController: UIViewController {
@IBOutlet weak var searchBar: UISearchBar!
@IBAction func back(sender: AnyObject) {
webView.goBack()
}
@IBOutlet weak var menuButton:UIBarButtonItem!
@IBOutlet weak var webView: UIWebView!
func searchBarSearchButtonClicked(searchBar: UISearchBar!) {
searchBar.resignFirstResponder()
var text = searchBar.text
var url = NSURL(string: text) //type "http://www.apple.com"
var req = NSURLRequest(URL:url!)
self.webView!.loadRequest(req)
}
override func viewDidLoad() {
super.viewDidLoad()
//problem here
webView.delegate = self;
webView.keyboardDisplayRequiresUserAction = true
//problem down here
webView.frame = self.view.frame;
let url = NSBundle.mainBundle().URLForResource("index", withExtension:"html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
// var url = NSURL(string:"http://www.google.com")
// var req = NSURLRequest(URL:url!)
// self.webView!.loadRequest(req)
self.searchBar.delegate = self
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
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.
}
*/
}
最佳答案
您将 self 指定为委托(delegate),但您的类未实现 UIWebViewDelegate 协议(protocol)。
class MapViewController: UIViewController, UIWebViewDelegate {
关于ios - 如何使用 UIWebView 制作浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31189999/