带导航栏的自定义标签栏控制器

Custom Tab Bar Controller with Navigation Bar

我花了一段时间寻找这个问题的解决方案,但没有找到。我想创建一个带有导航栏的选项卡栏控制器,该导航栏存在于所有子视图中。据我所知,层次结构不允许这样做,因为选项卡栏在层次结构中(等于?)或高于导航控制器,因此唯一简单的实现是将选项卡栏控制器的每个子视图嵌入到导航控制器,像这样:

我想知道是否有任何技术原因导致无法编写具有导航栏的自定义选项卡栏控制器。我不是要别人为我实现这个,但由于我还没有找到任何 library/existing 的例子,我想知道在我走之前是否有任何技术原因导致这不可能沿着尝试实施它的道路前进。

感谢帮助

即使我没有遇到像您这样的解决方案,而且我一直都知道此类解决方案,我也会尝试实施并发送给测试版应用程序审查。

文档说你不应该那样做,Apple 不希望你这样做,它可能而且将会导致问题。 但是,如果您不介意的话,您可以做一些修改:不要使用 TabBarController

  1. 在您的视图中添加一个 TabBar,
  2. 将此视图的视图控制器设为 tabBar 委托
  3. 在此视图控制器的代码中响应此 tabBar 上的用户事件。

我创建了一个解决方案(几年前),它由 TabBarController 组成,是 父级 视图控制器 主从 视图控制器。由于建立起来有点困难,所以我使用了库名ISMViewController.

好像有点hack,但是在App审核中通过了。在建立了那些简单的场景之后,我将一个项目发送给了应用程序审查,其中有一些空白的按钮和标签,只是为了检查它们是否合适。他们是。所以后来我开始开发这个控制器方案,它仍然在 App Store 中。

如果故事板中明显不支持做某事,则可能不是通用的解决方案,或者不是好的方法。但我认为这不是绝对禁止的。 例如,由于某些原因,iPad 的选项卡栏控制器和主细节视图控制器应该是根视图控制器。

Apple 约定在 App Review 中审查应用程序可以符合这些解决方案,但我一定会尝试。