ユーザーが uinavigationcontroller の戻るボタンを押したかどうかを確認しますか? 質問する

ユーザーが uinavigationcontroller の戻るボタンを押したかどうかを確認しますか? 質問する

ビューが読み込まれたときに、それがユーザーが戻るボタンを押したためかどうかを確認したいと思います。これを確認するにはどうすればよいですか?

ベストアンサー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
}

おすすめ記事