12

我试图弄清楚如何创建一个允许用户返回一页的后退按钮。我通读了 Apple 的 Docs(它仍然让我头疼),发现我需要设置canGoBackand goBack's。我已经尝试过了,但由于某种原因它不起作用。我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;
}

有谁知道我需要更改/添加什么才能使其正常工作?

4

4 回答 4

26

actionSheet:clickedButtonAtIndex:是针对UIActionSheet对象,而不是UIButton动作。

您可能应该编写一个IBAction看起来像这样的方法:

- (IBAction)backButtonTapped:(id)sender {
   [_viewWeb goBack];
}

并通过按钮将其连接到Touch Up Inside操作。

您可以搜索更多信息,IBAction但这可能是您想要的

于 2013-05-23T03:08:59.543 回答
1

对于 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()
    }
}
于 2019-11-28T12:30:33.727 回答
0

我认为应该像这样更具体

- (IBAction)backButtonTapped:(id)sender {
   if ([_viewWeb canGoBack] ) {
       [_viewWeb goBack];
   }
}
于 2016-08-25T10:53:59.207 回答
0

我一直在努力为这个函数快速编写一个工作代码,最后这就是我想出的。

 @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()
}
于 2016-09-20T09:04:04.383 回答