2013-05-10 47 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]];