0

ログインビューを含むナビゲーションベースのアプリケーションに取り組んでいます。同じナビゲーション階層(ログインページに戻る)に対処するための私のアプローチは

  • 2 つのナビゲーション コントローラーを使用する

  • ユーザーがログインするとすぐに、新しいナビゲーションコントローラーを作成します

    • 新しいView Controllerのルートをログイン後のビューに割り当てます

      someViewController.navigationController = [[[UINavigationController alloc]initWithRootViewController:someViewController ] autorelease];
      
    • このナビゲーション コントローラーをウィンドウに割り当てます。

      MYAppDelegate *appDelegate = (MYAppDelegate *)[[UIApplication sharedApplication] delegate]; 
      

      appDelegate.navigationController = someViewController.navigationController;

      UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
      [window  addSubview:someViewController.navigationController.view];
      [window  makeKeyAndVisible];
      

-最後に「someViewController」をスタックにプッシュします。

    [self.navigationController pushViewController:someViewController animated:YES];

今まですべて正常に動作しています..

結果:

  1. someViewController のナビゲーション コントローラーは、完全なアプリの新しい navigationController であり、LOGIN ビューに戻る方法はありません。

  2. 新しいViewControllerをスタックにプッシュして、次のレベルまで移動できます。

問題 :!!

「新しいViewControllerをスタックにプッシュして、前後に移動することしかできません。次のレベルまで、それ以上...」

次のように言います:
(newroot)master-->subordinates--X->details. // 第 3 レベルに移動できません。(newRoot)下位 -> 詳細。

投稿する前に他に何を試しましたか?

  1. 同じ navigationController のルートを POST-LOGIN ViewControlller の
    問題に設定するだけで試してみました。どちらも機能しませんでした。

ご案内申し上げます どうぞ
よろしくお願いいたします。

4

1 に答える 1

0

次の方法を試してみてくださいnavController

HomeViewController *svc=[[HomeViewController alloc]initWithNibName:@"HomeViewController" bundle:nil];

            appdelegate.homeViewController=svc;

            appdelegate.navController.navigationBarHidden=YES;
            appdelegate.navController=[[UINavigationController alloc] initWithRootViewController:appdelegate.homeViewController];
            [appdelegate.window addSubview:appdelegate.navController.view];

            [svc release];

[self.view removeFromSuperview];次に、サブビューとして追加されたかのようにログイン画面を削除できます

于 2011-05-31T05:40:33.963 に答える