我正在使用为PKRevealController
应用程序提供侧面菜单功能的 。
我在侧面菜单中有 UIbuttons,它们会触发一个视图被推送到导航堆栈上。但是,每个被推送的视图都有一个后退按钮,该按钮通向导航视图控制器。
确保推入堆栈的每个视图都将成为导航堆栈的根的正确方法是什么?除了显然不查看我需要堆叠的控制器。
我正在使用为PKRevealController
应用程序提供侧面菜单功能的 。
我在侧面菜单中有 UIbuttons,它们会触发一个视图被推送到导航堆栈上。但是,每个被推送的视图都有一个后退按钮,该按钮通向导航视图控制器。
确保推入堆栈的每个视图都将成为导航堆栈的根的正确方法是什么?除了显然不查看我需要堆叠的控制器。
例如,您可以将其设置为任何视图控制器作为导航控制器的根视图控制器
你可以试试这个.....只需在 FrontView 控制器中替换此代码 didSelectRowAtindexPath
// [tableView deselectRowAtIndexPath:indexPath animated:YES];
self.navigationController.viewControllers = [NSArray arrayWithObject: [[LeftDemoViewController alloc]init]];
如果您不打算推送视图控制器,您可能更喜欢拥有一个主视图,其中包含当前视图控制器的视图。每次更改到另一个应用程序部分时,您都会删除该视图,并插入新视图控制器的视图。
但是,如果您更喜欢导航堆栈,您可以从导航堆栈中删除以前的视图控制器并添加新的。假设您同时只有一个视图控制器并且您使用的是标签栏控制器
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];
如果您想拥有多个,而不是一直删除最后一个,您将不得不删除第一个。因此,您必须将 lastObject 替换为 objectAtIndex:0 并将 addObject 替换为 insertObject:atIndex:0
希望能帮助到你