0

我正在研究一個涉及LOGIN視圖的基於導航的應用程序。 我的方法來處理相同的導航層次結構(這是考慮到登陸頁面)是使用多個UINavigationControllers來實現登錄應用程序

  • 使用兩個導航控制器

  • 只要用戶登錄創建一個新的導航控制器

    • 新的視圖控制器的根分配給登錄後查看

      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]; 

所有工作FINE至今..

結果:

  1. 的someViewController的導航控制器是完整的應用程序的新navigationController,也沒有辦法去回到登錄視圖。

  2. 我可以將新的ViewController推送到堆棧並導航到上一級。

問題:!

「我只能推新ViewControllers堆棧和導航來來回回到一個新的水平,並沒有進一步...。」

說:
(newroot)主 - >下屬 - X->詳細信息。 //我無法導航到第三級。 (newRoot)下屬 - >詳情。

還有什麼我嘗試發佈之前?

  1. 試圖簡單地設置相同navigationController的POST-LOGIN ViewControlller
    問題的根源:它要麼din't工作。

請指導
謝謝你在期待

+0

在哪裏編寫代碼:UIWindow * window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 我的意思是在應用程序委託或視圖控制器? – Satyam 2011-05-31 05:47:40

+0

@ satyam它在「LoginSuceess」事件 – thesummersign 2011-05-31 06:03:03

回答

0

試試下面的方法,採取了navigationController中的appDelegate說navController 在loginViewController,登錄成功後,

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];如果添加爲子視圖

+0

我不能這樣做,因爲我需要一個navigationController直到登錄和登錄後,我需要放棄此navigationcontroller並獲得一個新的..這是靈魂的要求。 – thesummersign 2011-05-31 06:05:56

+0

@geekay您可以創建一個新的導航控制器併爲其指定在窗口中創建的navController,以便將舊的導航控制器替換爲新的導航控制器 – SriPriya 2011-05-31 06:09:18

+0

我正在做同樣的事情(請參閱代碼),但是一旦我推動視圖即可但進一步(下一級)它不工作.. – thesummersign 2011-05-31 06:11:54

相關問題