如何在swift中将多个视图连接到单个标签栏项目?

我有一个标签栏控制器有两个项目连接到两个视图控制器(说A&B)现在我想添加一个第三视图控制器(说C)。 但我不想在选项卡视图中添加第三个图标。 当用户select第二个图标时,应该根据用户是否login来呈现B或C.

故事板设置

只需为要为其显示不同视图的标签栏项目创build另一个视图控制器,具体取决于上下文。 我们称之为RouterViewController 。 然后将所需的信息传递给RouterViewController并在那里实现必要的逻辑。

RouterViewController你现在可以呈现你想要的任何视图控制器(没有animation)。 有很多方法可以做到这一点,例如:

  • 使您的RouterViewController成为UINavigationController一个子类并dynamic设置其rootViewController属性。
  • 使您的RouterViewController成为一个容器视图控制器,并相应地embedded所需的视图控制器。
  • 从你的RouterViewController模态方式RouterViewController一个视图控制器(没有animation)。 (我个人会劝阻这个选项,因为呈现模态视图控制器的目的是为了另一个目的。)

等等