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

WKWebView - buttons not visible in full screen mode

我有一个 ViewController,上面有 WebKit 和两个按钮。我希望 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()
}

这是我的故事板的样子:

方法 showLoading() 和 hideLoading() 正在处理加载弹出窗口。 使用此代码按钮不可见。当我删除功能 loadView() 按钮是可见的,但方法 showLoading() 和 hideLoading() 永远不会被调用。

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

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


你可以

一)

直接插入webview:

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

b)

WKWebView 添加到按钮下方 Interface Builder 的视图中,然后从 IB 并且您可以完全删除 loadView() 实施。