带导航栏的自定义选项卡栏控制器

时间:2016-09-09 18:42:40

标签: ios swift xcode uiviewcontroller uitabbarcontroller

我花了一段时间寻找解决方案,但却没有找到解决方案。我想创建一个带有导航栏的标签栏控制器,该导航栏出现在所有子视图中。从我收集的内容来看,层次结构不允许这样,因为层次结构栏在层次结构中(等于?)或更高,而不是导航控制器,因此唯一简单的实现是将Tab Bar Controller的每个子视图嵌入到导航控制器,如下所示:

example gif

我想知道是否有任何技术原因导致无法编写具有导航栏的自定义标签栏控制器。我并没有要求别人为我实施这个,但由于我还没有找到任何图书馆/现有的例子,我想知道是否有任何技术原因在我试图实现它之前,我是不可能的。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

即使我没有遇到像你这样的解决方案,而且我也一直都知道这些解决方案,我会尝试实施并发送给beta应用审核。

文档说你不应该这样做,而苹果公司并不希望你这样做,它可能并且会引起问题。 但是如果你不介意你做一点点黑客攻击:只是不要使用TabBarController

  1. 将一个TabBar放到您的视图中
  2. 使此视图的视图控制器成为tabBar委托
  3. 在此视图控制器的代码中响应此tabBar上的用户事件。
  4. 我创建了一个解决方案(几年前),它是由 TabBarController 构成的,是父级视图控制器的主要细节查看控制器。由于建立起来有点困难,我使用了库名ISMViewController

    在应用评论中,它似乎有点黑客,但已被批准。在建立了那些简单的场景之后,我发送了一个项目到应用程序评论,有一些空的按钮和标签,只是为了检查它们是否合适。他们是。所以我开始开发这个控制器方案,它仍然在App Store中。

    如果在故事板中显然不支持某些事情,那么它很可能不是一个常见的解决方案,也可能不是好方法。但我不认为这是绝对禁止的。 例如,由于某些原因,标签栏控制器以及iPad的主详细视图控制器应该是根视图控制器。

    随后在App Review中审核应用程序的Apple惯例可能符合这些解决方案,但我肯定会尝试。