我有一个带有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()
}
这是我的故事板的外观:
方法showLoading()和hideLoading()正在处理加载弹出窗口。 使用此代码按钮不可见。当我删除函数loadView()时,按钮可见,但方法showLoading()和hideLoading()从未被调用。
如何实现上述行为:具有按钮和功能方法(showLoading()和hideLoading())的全屏Web视图
答案 0 :(得分:1)
当前代码中发生的事情是,您用webview
实例任意替换当前视图,并且也直接删除了当前视图的子视图(=您的按钮)。
您可以
直接插入Web视图:
override func loadView() {
webview = WKWebView()
webview.navigationDelegate = self
view.insertSubview(webview, at: 0)
webview.frame = view.bounds
}
或
在按钮下面的 Interface Builder 中将WKWebView
添加到视图中,然后连接插座和 IB 中的代表,然后可以将其删除您的loadView()
实施完全。