在没有 TabBar 的情况下使用带 TabBarController 的分段控件(在底部)消失

Use Segmented Control with TabBarController without TabBar (on bottom) disappears

我想使用 Segmented Control 在我的应用中的联系人 ViewController 中的联系人表单和联系人详细信息之间进行选择。联系人 ViewController 由 TabBarController 管理。但是使用Segmented Control切换时,底部的TabBar消失了。

我在这里上传了一个示例项目:SegmentedControlTest

有解决这个问题的简单方法吗?

此致, 大卫.

我下载了你的示例项目。 由于你的 segue 类型是 show,你不想让标签栏消失,我猜你只想将 form viewdetail view 交换。不显示另一个 viewcontroller .

您可以通过创建详细视图而不是详细视图控制器来解决它。

另一种解决方案是您可以更改 UITabBarControllerviewControllers

保持当前结构你可以:

  1. 在 NavigationController 中嵌入 ContactFormVC(编辑器 -> 嵌入 -> NavigationController)并在 NavigationController 上 属性 取消选中 "Shows Navigation Bar"
  2. 在 ContactFormVC 和 ContactDetailsVC 上,将其 "presentation" 属性(在 "Transition Style" 下)设置为 "Current Context";你的故事板看起来像这样

您应该将过渡更改为推送和弹出而不是两者 "show" 否则您将继续添加导航堆栈。通过代码很容易做到,我找不到如何通过情节提要来做到这一点。我还建议按照先前答案的建议更改视图控制器的结构。

我鼓励您使用的方法是使用 single view controller with multiple container views

*正在将 .swift 代码连接到故事板。确保自定义 class 部分中的 class 名称与 class 的名称相同。在这种情况下是 "ViewController.swift"