Swift 如何添加在WebView无法返回时隐藏的返回按钮
我的应用程序加载一个网络视图。我嵌入了一个导航控制器,并添加了一个工具栏按钮项作为我的后退按钮Swift 如何添加在WebView无法返回时隐藏的返回按钮,swift,xcode,button,uiwebview,webkit,Swift,Xcode,Button,Uiwebview,Webkit,我的应用程序加载一个网络视图。我嵌入了一个导航控制器,并添加了一个工具栏按钮项作为我的后退按钮 import UIKit import WebKit var refController:UIRefreshControl = UIRefreshControl() class FirstViewController: UIViewController, UIWebViewDelegate, WKNavigationDelegate, WKUIDelegate { @IBActi
import UIKit
import WebKit
var refController:UIRefreshControl = UIRefreshControl()
class FirstViewController: UIViewController, UIWebViewDelegate, WKNavigationDelegate, WKUIDelegate {
@IBAction func backwardsButtonTapped(_ sender: Any) {
webView.goBack()
}
@IBOutlet weak var webView: WKWebView!
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
self.webView.navigationDelegate = self
self.webView.uiDelegate = self
let url = "https://www.google.com/"
let request = URLRequest(url: URL(string: url)!)
self.webView.load(request)
这一切都很好,但我想隐藏“后退”按钮,使其仅在WebView加载新内容时显示。例如,该应用程序在google.com上打开,后退按钮隐藏,但当用户搜索某个内容并加载新页面时,该按钮就会出现
然后,当用户点击返回并返回google.com时,我希望按钮再次隐藏
有什么帮助或建议吗?我是个新手。此代码应该可以工作:
import UIKit
import WebKit
class ViewController: UIViewController, UIWebViewDelegate, WKNavigationDelegate, WKUIDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webView.navigationDelegate = self
self.webView.uiDelegate = self
let url = "https://www.google.com/"
let request = URLRequest(url: URL(string: url)!)
self.webView.load(request)
}
@IBAction func backwardsButtonTapped(_ sender: Any) {
if (self.webView.canGoBack) {
self.webView.goBack()
}
}
}
您还可以实现“前进”按钮:
@IBAction func forwardButtonTapped(_ sender: Any) {
if (self.webView.canGoForward) {
self.webView.goForward()
}
}
此代码应适用于:
import UIKit
import WebKit
class ViewController: UIViewController, UIWebViewDelegate, WKNavigationDelegate, WKUIDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webView.navigationDelegate = self
self.webView.uiDelegate = self
let url = "https://www.google.com/"
let request = URLRequest(url: URL(string: url)!)
self.webView.load(request)
}
@IBAction func backwardsButtonTapped(_ sender: Any) {
if (self.webView.canGoBack) {
self.webView.goBack()
}
}
}
您还可以实现“前进”按钮:
@IBAction func forwardButtonTapped(_ sender: Any) {
if (self.webView.canGoForward) {
self.webView.goForward()
}
}
您可以检查
webView
的canGoBack
属性,将backButton
的ishiden
属性设置为webView(:,didfish:)
方法中的true
或false
class FirstViewController: UIViewController, UIWebViewDelegate, WKNavigationDelegate, WKUIDelegate {
//...
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { // triggers when loading is complete
backButton.isHidden = !webView.canGoBack
}
}
您可以检查
webView
的canGoBack
属性,将backButton
的ishiden
属性设置为webView(:,didfish:)
方法中的true
或false
class FirstViewController: UIViewController, UIWebViewDelegate, WKNavigationDelegate, WKUIDelegate {
//...
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { // triggers when loading is complete
backButton.isHidden = !webView.canGoBack
}
}
谢谢你的建议。不幸的是,当WebView无法返回时,按钮仍然没有隐藏。我希望这个按钮只有在页面可以返回时才会出现,否则会隐藏在导航控制器之外。谢谢你的建议。不幸的是,当WebView无法返回时,按钮仍然没有隐藏。我希望这个按钮只有在页面可以返回时才会出现,否则会隐藏在导航控制器之外。