0

奇妙な問題があります。こことインターネットでいくつかのヒントを見つけましたが、問題を解決するものは何もありませんでした。だからここに何が起こるかです:

9つのアイテムがあるTabBarナビゲーションがあります。それらはすべてUINavigationItemsです。それらの1つで、特定の条件下でデフォルトのviewControllerを別のviewControllerに置き換えます。

そのために、popViewControllerとpushViewControllerを使用します。これは完全に機能しますが、UINavigationBarが同期していないという問題があります。これには正しいビューが表示されるという効果がありますが、[戻る]ボタンをクリックすると、空のナビゲーションバーアイテムに移動し、そこからrootViewController(たとえば、「詳細」)に戻ります。

これが私のコードです:


- (void)viewWillAppear:(BOOL)animated { 
  if ([[myAppDelegate bcUser] userLoggedIn]) {
    // user is logged in
    MyDataLoggedInViewController *loggedInViewController = [[[MyDataLoggedInViewController alloc] initWithNibName:@"MyDataLoggedInView" bundle:nil] autorelease];
    UINavigationController *navController = self.navigationController;
    [[self retain] autorelease];

    [navController popViewControllerAnimated:YES];
    [navController pushViewController:loggedInViewController animated:YES];
  } 
}

誰かが助けてくれることを願っています。私は見つけたすべてを試しましたが、何も役に立ちませんでした。:-/

おかげで、そして最高の願い、トーマス

4

1 に答える 1

0

設定してみてください:

[navController popViewControllerAnimated:NO];
[navController pushViewController:loggedInViewController animated:NO];

アニメーションが完了するのを待っている可能性が高いからです。

于 2011-03-04T01:07:50.413 に答える