update.ViewControllerによって自動で生成された戻るボタンをユーザーに押された時の処理を検知したいときに調べたメモ。みなさんもユーザーのログ関係でそういうことをしないといけない要件があったりするのではないかなと。StackOverflowみるといくつか方法があったhttp://stackoverflow.com/questions/5217992/back-button-callback-in-navigationcontroller-in-ios3つ紹介しておく。viewWillDisappear:animated];}viewWillDisappear:はライフサイクルとして動作しているメソッドなので、戻るを押されてこのViewControllerがpopされた後に動作するためこの判定でも検知はできるが、下記のようなお約束の上で成り立っているViewControllerがpopされたpopされたから画面から消える画面から消えるからviewWillDisappear:が動作するViewControllerが破棄される仕様上、popされた際に必ずviewWillDisappear:が起きるわけではなく、画面の表示が無くなった際に動作するので順番的には妥当っぽく見える。上手く説明できないけど、ライフサイクルに依存するのは少し綱渡り的な気がするし人に教える時はこの方法はやめとくかな。Appleのリファレンスを調べると、ライフサイクルを使う方法にはもうひとつやり方がある。}}ただ、これは戻るボタンのタップ以外に、この親ViewControllerがモーダルの場合には「戻るボタン」だけでなく閉じても動作して同じように判定してしまう。didMoveToParentViewController:で判断didMoveToParentViewController:メソッドはコンテナがViewControllerを追加した後にその追加されたViewControllerで実行される。これを使えばpopされたとこを検知できるので戻るを判定できる(モーダルで閉じるにしても動作しない)。}}最初self.parentViewControllerはnilだろうしnilかどうかで判断すればいいのでは...と思ったがこのメソッドの前に他のコンテナに追加されnilでないこともあるんだろう。削除された時はdidMoveToParentViewController:の引数parent自体がnilのはずなのでparentがnilだったら削除されてると判断できなくもない気がする。厳密さを求めて特定の親ViewControllerを比較したいためにisEqaul:メソッドで比較しているのだと思う(ただ戻るを押した際の動作的にはnilとnilの比較になっていた)。requestStockLike130@yimajo株式会社キュリオシティソフトウェアの代表です。iOSアプリを作っています。最近はRxSwift研究読本書いてます。upLoginユーザーは見つかりませんでした。