ios - 如何使用 UIWebView 制作浏览器?

标签 ios swift cocoa-touch uiwebview

我一直在尝试用 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/

相关文章:

swift - 如何使用 PFQuery getObjectWithId?

objective-c - 如何在进入前景时保留 UIScrollView 的框架?

cocoa-touch - 单个 UiTableView 中的多个 UiTableViewCell 子类?为什么这段代码不起作用

ios - 控制台中的 DDLog(CocoaLumberjack) 消息

ios - 在头文件中找不到桥接头

swift - 在 SpriteKit 中缩放/定位静态节点以使它们在所有设备上看起来相似的正确方法是什么? ( swift 4、iOS 11.2)

ios - UIProgressView 自定义最大值

ios - 使用 Core Animation 的 UIView 翻转动画

ios - 在 UIScrollView 中绘制图形

ios - 导航 Controller : What is below the topmost view controller in navigation controller on the window?