ユーザーが1ページ戻ることができる戻るボタンを作成する方法を見つけようとしています。私はAppleのドキュメント(まだ頭を悩ませている)を読んだところ、canGoBack
とgoBack
を設定する必要があることがわかりました。私はこれを試しましたが、何らかの理由で機能していません。私のUIWebView
はviewWeb
という名前で、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;
}
これを機能させるために何を変更/追加する必要があるか誰かが知っていますか?
actionSheet:clickedButtonAtIndex:
はUIActionSheet
オブジェクト用であり、UIButton
アクション用ではありません。
おそらく、次のようなIBAction
メソッドを作成する必要があります。
- (IBAction)backButtonTapped:(id)sender {
[_viewWeb goBack];
}
ボタンからTouch Up Insideアクションに接続します。
IBAction
で詳細情報を検索できますが、それはおそらくあなたが望むものです
私は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()
}
このようにもっと具体的にすべきだと思います
- (IBAction)backButtonTapped:(id)sender {
if ([_viewWeb canGoBack] ) {
[_viewWeb goBack];
}
}