2013-05-10 48 views
0

我正在使用PKRevealController,它爲應用程序提供了側面菜單功能。重置導航控制器上的rootViewController

我在側邊菜單中有UIbuttons,他們觸發一個視圖被推入導航堆棧。但是,正在推送的每個視圖都有一個後退按鈕,可導向導航視圖控制器。

確保將每個視圖推入堆棧的正確方法將成爲導航堆棧的根目錄?除了顯然不是我需要堆疊的視圖控制器。

回答

0

如果您不打算推視圖控制器,您可能更喜歡有一個主視圖,其中包含當前視圖控制器的視圖。每次您切換到其他應用程序部分時,您都會刪除該視圖,並插入新視圖控制器的視圖。

但是,如果您更喜歡有導航堆棧,則可以從導航堆棧中刪除先前的viewcontroller並添加新的viewcontroller。假設你纔會在同一時間有一個視圖控制器和您使用的是標籤欄控制器

UIViewController * root = nil; 
UINavigationController *rootNavController = [[[UINavigationController alloc]initWithRootViewController:root] autorelease]; 
[root release]; 
NSMutableArray * viewControllersArray = [NSMutableArray arrayWithArray:self.tabBar.viewControllers]; 
[viewControllersArray removeObject:[viewControllersArray lastObject]]; 
[viewControllersArray addObject:rootNavController]; 
[self.tabBar setViewControllers:viewControllersArray animated:NO]; 

如果你想有一個以上的,而不是去掉最後一個所有的時間,你將不得不刪除第一個。所以,你將有objectAtIndex更換lastObject:0和ADDOBJECT與insertObject:atIndex:0

希望它可以幫助

2

你可以把它的任何視圖控制器的導航控制器的例如

根視圖控制器

您可以試試.....只需在FrontView控制器中替換此代碼didSelectRowAtindexPath

  // [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
     self.navigationController.viewControllers = [NSArray arrayWithObject: [[LeftDemoViewController alloc]init]];