【问题标题】:ContainerView on TabController Creates Phantom TabTabController 上的 ContainerView 创建 Phantom Tab
【发布时间】:2017-02-05 08:04:21
【问题描述】:

我正在使用 ContainerView 在 iOS 应用程序中的各种 ViewController 之间共享视图。这在大多数情况下都很有效,除了 TabViewController,它会导致创建一个额外的空白选项卡项。我附上了来自故事板的屏幕截图,您可以在其中看到文档大纲中的 4 个关系列表和 1 个嵌入 Segue 列表。 据我所知,TabViewController 的 Embed Segue 连接被解析(/混淆)为第 5 个关系连接,因此是一个选项卡项。考虑到故事板中的关系和嵌入 Segue 连接看起来很相似(除了图标略有不同),并且它们在文档大纲中彼此相邻列出,我可以看到这个错误是如何发生的。

为了弥补这个错误,我使用 tabItem titlePositionAdjustment 将 4 个合法选项卡在界面中居中。 这里的问题是我只能补偿选项卡图标/标签,而不是实际的按钮本身。无论如何,5 个标签栏控制器按钮似乎都处于固定位置。

我希望其他人已经遇到了这个问题,并且可以提供解决方案或更好的方法来缓解这个问题。

谢谢!

【问题讨论】:

  • 您能否详细解释一下为什么需要 Container View 以及如何使用它?我怀疑找到另一个解决方案会更容易。
  • 是的,当然。因此,该产品是一个音乐应用程序。 (App Store 上的 Earbits Music Discovery)。我们有一个小型迷你播放器,我们希望它作为子视图在所有屏幕上可见。我做了一些关于如何最好地与多个视图控制器共享视图的研究,而容器视图就是我得出的结论。这是我遵循的教程之一:spin.atomicobject.com/2015/07/21/ios-container-views
  • 谢谢。你能在选择它们的选项卡时将容器视图添加到主页、浏览、播放列表等视图控制器吗?
  • 是的,我绝对可以试试。我会在早上试一试,然后告诉你。谢谢。
  • 是的,这似乎有效。把它挂到一个标签上,让我做其他的。感谢您的建议。回想起来,似乎很明显。等我一下。完成其他人。

标签: ios iphone swift tabview nstabviewcontroller


【解决方案1】:

好的-

pbasdf 让我朝着正确的方向前进。最后,我为连接到我的 tabView 的 4 个视图中的每一个添加了一个 viewContainer,并为共享视图添加了一个 EmbedSegue。

需要注意的是,您只需要其中一个视图控制器即可将 viewContainer 附加为 tabViewController 的子视图。然后,它与 tabViewController 中的所有视图控制器共享。

所以,我有一个正常工作的 tabViewController,默认情况下有 4 个按钮正确定位,以及它上方的嵌入式 containerView。

【讨论】:

  • 只是一个更新。我对此的修复并没有成功。因为我添加为 TabView 的子视图的视图属于其视图控制器之一,所以它违反了正确的视图层次结构。它会导致以下异常:UIViewControlHierarchyInconsistency。所以,我仍然不知道如何在 Tab View Controller 中正确使用容器视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
  • 2015-12-09
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
相关资源
最近更新 更多