最初に
この記事は、SwiftでUINavigationControllerの戻る処理のイベントを取得する方法する方法を記載した記事です。
記載時(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