これは、タブ バーの項目でタブ バー コントローラーとナビゲーション コントローラーを使用している場合に想定される動作です。ユーザーは、タブがビューの状態を保持することを期待します。
ユーザーがタブに戻ったときにナビゲーション コントローラーのルート ビュー コントローラーに戻るようにアプリを強制したい場合は、UITabBarControllerDelegate tabBarController:didSelectViewController:メソッドを実装できます。このデリゲート メソッドの機能は次のとおりです。
ユーザーがタブ バーで項目を選択したことをデリゲートに伝えます。
次に、ユーザーがタブをタップしたときにpopToRootViewControllerAnimated :というUINavigationController のメソッドを呼び出します。これは、次のことに役立ちます。
ルート ビュー コントローラーを除くスタック上のすべてのビュー コントローラーをポップし、表示を更新します。
例えば:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if(viewController == yourNavigationController) {
UINavigationController *navigationController = (UINavigationController *)viewController;
[navigationController popToRootViewControllerAnimated:NO];
}
}