web-dev-qa-db-ja.com

UIWebViewの戻るボタン

ユーザーが1ページ戻ることができる戻るボタンを作成する方法を見つけようとしています。私はAppleのドキュメント(まだ頭を悩ませている)を読んだところ、canGoBackgoBackを設定する必要があることがわかりました。私はこれを試しましたが、何らかの理由で機能していません。私のUIWebViewviewWebという名前で、backButtonという名前のコンセントを作成して[戻る]ボタンに接続し、1のタグを付けました。これが私が書いたコードです。 View Controllerの場合:

// 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;
}

これを機能させるために何を変更/追加する必要があるか誰かが知っていますか?

11
Henry F

actionSheet:clickedButtonAtIndex:UIActionSheetオブジェクト用であり、UIButtonアクション用ではありません。

おそらく、次のようなIBActionメソッドを作成する必要があります。

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

ボタンからTouch Up Insideアクションに接続します。

IBActionで詳細情報を検索できますが、それはおそらくあなたが望むものです

25
Leehro

私は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()
}
0
Dr.Ax

このようにもっと具体的にすべきだと思います

- (IBAction)backButtonTapped:(id)sender {
   if ([_viewWeb canGoBack] ) {
       [_viewWeb goBack];
   }
}
0
Alsh compiler