LoginSignup
19
19

More than 5 years have passed since last update.

[Swift]UINavigationControllerの戻る[back]処理のイベントを取得する方法

Posted at

最初に

この記事は、SwiftUINavigationControllerの戻る処理のイベントを取得する方法する方法を記載した記事です。
記載時(2015/12/06)のバージョンは下記の通りです。

環境

対象 バージョン
Swift 2.1
XCode 7.1.1

方法

viewWillDisappearに戻る時のイベントを判定します。

viewWillDisappearとは?

UIViewControllerのライフサイクルのうちの一つで、
View が他のView (画面から消える) 直前に呼び出されるメソッドです

ソースコード

override func viewWillDisappear(animated: Bool) {
    if let viewControllers = self.navigationController?.viewControllers {
        var existsSelfInViewControllers = true
        for viewController in viewControllers {
            // viewWillDisappearが呼ばれる時に、
            // 戻る処理を行っていれば、NavigationControllerのviewControllersの中にselfは存在していない
            if viewController == self {
                existsSelfInViewControllers = false
                // selfが存在した時点で処理を終える
                break
            }
        }

        if existsSelfInViewControllers {
            print("前の画面に戻る処理が行われました")
        }
    }
    super.viewWillDisappear(animated)
}

これで戻る処理が取得できると思います('`)b

19
19
0

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
19
19