嵌套的 UINavigationControllers 和 TabBarController

Nested UINavigationControllers and TabBarController

我在 UI 设计上遇到了一些问题。

备选方案 1:

备选方案 2:

在 DetailViewController 的 navigationitem 中的备选方案 1 中,backButtontitle 未显示,但我有较低的 tabbar

在 DetailViewController 的 navigationitem 中的备选方案 2 中,backButtontitle 是可见的,但我缺少较低的 tabbar

有什么方法可以同时拥有备选方案 1 和 2 的功能吗?

我需要最上面的导航控制器,因为在 TabBarViewController 中我有一个显示侧边菜单的 LeftBarButtonItem (SWRevealViewController)。

编辑

TableViewController 中的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    poiDetail = [poiManager.listOfPois objectAtIndex:indexPath.row]; // does not work with regions-sections
    [self performSegueWithIdentifier:@"poiDetail" sender:self];
}

其中 "poiDetail" segue 是一个推送,例如'Show' 继续。

嘿,我建议备选方案 3:

  • UINavigationController
    • 标签栏控制器
      • 导航控制器
        • 地图视图控制器
      • 导航控制器
        • Table 视图控制器
          • 详细视图控制器

您基本上希望将 Tab Bar Controller 管理的两个 View Controller 包装在 Nav Controllers 中

是的,我实现了相同的场景并面临相同的问题,幸运的是我能够在我的应用程序中解决这个问题,

我建议备选方案 1

您可以在 AppDelegate 中设置初始 UINavigationController 并使用相同的导航控制器维护应用程序流,直到嵌套 UINavigationController。并将 TabBar 控制器设置为 RootViewController

在嵌套的NavigationController 的RootViewController 中,请隐藏AppDelegate navigationController 的NavigationBar。因此,您能够解决您面临的备选方案 1 的问题。

我引用了这个库:https://github.com/juliorimo/CustomTabBar-iOS (注意:这个库只是一个 UINavigationController 和 TabbarController 进一步嵌套的 UINavigationController 流程​​你必须维护)