我正在试图弄清楚如何创建一个允许用户返回一页的后退按钮。我通读了Apple的文档(这仍然在我脑海中),并发现我需要设置canGoBack
和goBack
。我试过这个,但由于某种原因它没有用。我的UIWebView
名为viewWeb
,我创建了一个插座并将其附加到我的后退按钮,名为backButton
,并将其标记为1.这是我在视图中编写的代码控制器:
// Back button:
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
[_backButton addTarget:_viewWeb
action:@selector(goBack)
forControlEvents:UIControlEventTouchDown];
if ([_viewWeb canGoBack]) {
NSLog(@"Back button pressed.");
[_viewWeb goBack];
}
}
else return;
}
有谁知道我需要更改/添加以使其正常工作?
答案 0 :(得分:24)
actionSheet:clickedButtonAtIndex:
适用于UIActionSheet
个对象,而非UIButton
个动作。
你应该编写一个看起来像这样的IBAction
方法:
- (IBAction)backButtonTapped:(id)sender {
[_viewWeb goBack];
}
并将其连接到按钮上的 Touch Up Inside 操作。
您可以在IBAction
上搜索更多信息,但这可能是您想要的
答案 1 :(得分:0)
我认为它应该更具体,如此
- (IBAction)backButtonTapped:(id)sender {
if ([_viewWeb canGoBack] ) {
[_viewWeb goBack];
}
}
答案 2 :(得分:0)
我一直在努力为swift编写这个函数的代码,最后是我想出的。
@IBOutlet weak var goBackBtn: UIBarButtonItem!
@IBOutlet weak var goForwardBtn: UIBarButtonItem!
@IBOutlet weak var itemWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL (string: "www.google.com")
let requestObj = NSURLRequest(URL: url)
itemWebView.loadRequest(requestObj)
itemWebView.delegate = self
goBackBtn.enabled = false
goForwardBtn.enabled = false
}
func webViewDidFinishLoad(webView: UIWebView) {
goBackBtn.enabled = itemWebView.canGoBack
goForwardBtn.enabled = itemWebView.canGoForward
}
@IBAction func forward(sender: AnyObject) {
itemWebView.goForward()
}
@IBAction func back(sender: AnyObject) {
itemWebView.goBack()
}
答案 3 :(得分:0)
对于Swift 4和Swift 5
@IBAction func refreshAction(_ sender: Any) {
self.webView.reload()
}
@IBAction func backAction(_ sender: Any) {
if(self.webView.canGoBack) {
self.webView.goBack()
}
}
@IBAction func forwardAction(_ sender: Any) {
if self.webView.canGoForward{
self.webView.goForward()
}
}