我正在开发一个iOS应用程序,该应用程序使用左侧的滑出式抽屉,其中包含选项卡,每个选项卡代表应用程序的一个主视图。目前,当用户选择一个选项卡时,应用程序会在导航堆栈中搜索相关视图控制器的实例,如果找到一个,则会弹回该控制器,否则会创建一个新实例并将其推送到堆栈上。
我还想添加一个后退按钮,允许用户返回到上一个视图,然而,由于许多导航选项会将用户弹出到上一视图控制器,导致他们要离开的控制器被取消锁定,因此没有明显的方法可以使用后退按钮再次返回到该控制器。
是否有任何方法可以构建此应用程序,以便添加后退按钮,同时仍然允许用户在给定时间使用选项卡导航到任何视图?
导航代码示例如下(当用户单击其中一个选项卡时调用):
if(![self.navigation.topViewController isKindOfClass:[GraphViewController class]]) { //Are we already in this view?
BOOL foundController = NO;
for(id controller in self.navigation.viewControllers) { //Is there a controller of this type already in the stack?
if([controller isKindOfClass:[GraphViewController class]]) {
[self.navigation popToViewController:controller animated:YES];
foundController = YES;
break;
}
}
if(!foundController) {
GraphViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"graphViewController"];
controller.connection = _connection;
controller.data = _dataCache;
[self.navigation pushViewController:controller animated:YES];
}
}
我相信您想要的是用于滑出菜单中每个项目的导航控制器。这样,当用户从侧菜单中选择视图时,他们可以导航与该部分相关联的视图。这将允许用户在从侧菜单中选择项目后从视图返回。