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