WKWebView-按钮在全屏模式下不可见

时间:2018-10-31 14:12:28

标签: ios swift wkwebview

我有一个带有WebKit的ViewController和它上面的两个按钮。我希望WebKit处于全屏状态并且按钮位于其上方。

这是我的ViewController的代码:

@IBOutlet weak var webview: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()
    // here I am loading URLRequest
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

override func loadView() {
    webview = WKWebView()
    webview.navigationDelegate = self
    view = webview
}

func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    showLoading()
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    hideLoading()
}

这是我的故事板的外观:

enter image description here

方法showLoading()和hideLoading()正在处理加载弹出窗口。 使用此代码按钮不可见。当我删除函数loadView()时,按钮可见,但方法showLoading()和hideLoading()从未被调用。

如何实现上述行为:具有按钮和功能方法(showLoading()和hideLoading())的全屏Web视图

1 个答案:

答案 0 :(得分:1)

当前代码中发生的事情是,您用webview实例任意替换当前视图,并且也直接删除了当前视图的子视图(=您的按钮)。


您可以

a)

直接插入Web视图:

override func loadView() {
    webview = WKWebView()
    webview.navigationDelegate = self
    view.insertSubview(webview, at: 0)
    webview.frame = view.bounds
}

b)

在按钮下面的 Interface Builder 中将WKWebView添加到视图中,然后连接插座和 IB 中的代表,然后可以将其删除您的loadView()实施完全。