从视图控制器中删除 WebView

Removing WebView from View Controller

我有一个 tableView,它在按下单元格后启动 URL。我正在为其创建 webView:

var webView = UIWebView(frame: self.view.bounds)
webView.scalesPageToFit = true
view.addSubview(webView)
let request = URLRequest(url: catPictureURL!)
webView.loadRequest(request)
webViewDidStartLoad(webView)

我有一个函数可以在其中创建一个关闭按钮:

func webViewDidStartLoad(_ webView: UIWebView){
    print("JUHUUU")
    var subView = UIView()
    subView.frame.size.height = 10
    subView.frame.size.width = 10
    subView.frame =  CGRect(x: 0, y: 50, width: 100 , height: 100)
    let button = UIButton(type: .system)
    button.frame = CGRect(x: 0, y: 50, width: 100, height: 100)
    button.backgroundColor = UIColor.red
    button.setTitle("CANCEL", for: [])
    button.addTarget(self, action: #selector(webView.removeFromSuperview), for: UIControlEvents.touchUpInside)
    self.view.addSubview(button)
    webView.addSubview(subView)
    //subView.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "dismiss")
}

我在 button.addTarget 中尝试关闭 webView 并显示上一个屏幕,但是

action: #selector(webView.removeFromSuperview) 

正在删除 rootView - 而不是 webView(这会导致崩溃)。我真的不知道如何关闭 webView。 PS。我也尝试过 #selector("dismiss") 并用 self.dismiss 准备一个函数,但结果是一样的。

你的行动目标是自己(也就是你的vc)。将目标设置为 webView

Self 应该更改为 webView 以便关闭它。

button.addTarget(webView, action: #selector(webView.removeFromSuperview), for: UIControlEvents.touchUpInside)