ビューが読み込まれたときに、それがユーザーが戻るボタンを押したためかどうかを確認したいと思います。これを確認するにはどうすればよいですか?
ベストアンサー1
UINavigationController の戻るボタンの押下 (iOS 5.0 以前) を検出するための最善の解決策は、現在のビュー コントローラーがナビゲーション コントローラーのビュー コントローラー スタックに存在しないことを確認することです。
- (void)viewDidDisappear:(BOOL)animated
論理的に考えると、このメソッドが呼び出される頃にはビュー コントローラーがスタックから削除されている可能性が非常に高いため、この状態をチェックインする方が安全である可能性があります。
iOS 5.0以前:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if (![[self.navigationController viewControllers] containsObject:self]) {
// We were removed from the navigation controller's view controller stack
// thus, we can infer that the back button was pressed
}
}
iOS 5.0以降で使用可能-親ビューコントローラーに移動しました:
- (void)didMoveToParentViewController:(UIViewController *)parent
{
// parent is nil if this view controller was removed
}