LoginSignup
55
57

More than 5 years have passed since last update.

WebView にスワイプで戻る、進む機能をつける

Last updated at Posted at 2015-01-12
ViewController.swift
@IBOutlet weak var webView: UIWebView!

override func viewDidLoad() {
    ...
    self.setupSwipeGestures()
}

func setupSwipeGestures() {
    // 右方向へのスワイプ
    let gestureToRight = UISwipeGestureRecognizer(target: self.webView, action: "goBack")
    gestureToRight.direction = UISwipeGestureRecognizerDirection.Right
    self.webView.addGestureRecognizer(gestureToRight)

    // 左方向へのスワイプ
    let gestureToLeft = UISwipeGestureRecognizer(target: self.webView, action: "goForward")
    gestureToLeft.direction = UISwipeGestureRecognizerDirection.Left
    self.webView.addGestureRecognizer(gestureToLeft)
}

goBack(), goForward() 以外の処理を追加したいときや、canGoBack(), canGoForward() が false のときに何か処理を加えたいとき、target を self にして呼び出すメソッドを用意する

ViewController.swift
@IBOutlet weak var webView: UIWebView!

override func viewDidLoad() {
    ...
    self.setupSwipeGestures()
}

func setupSwipeGestures() {
    // 右方向へのスワイプ
    let gestureToRight = UISwipeGestureRecognizer(target: self, action: "goBack")
    gestureToRight.direction = UISwipeGestureRecognizerDirection.Right
    self.webView.addGestureRecognizer(gestureToRight)

    // 左方向へのスワイプ
    let gestureToLeft = UISwipeGestureRecognizer(target: self, action: "goForward")
    gestureToLeft.direction = UISwipeGestureRecognizerDirection.Left
    self.webView.addGestureRecognizer(gestureToLeft)
}

func goBack() {
    if (self.webView.canGoBack) {
        self.webView.goBack()
    } else {
        // canGoBack == false の処理
    }
}

func goForward() {
    if (self.webView.canGoForward) {
        self.webView.goForward()
    } else {
        // canGoForward == false の処理
    }
}
55
57
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
57