如何为切换容器视图控制器创建故事板?

3
有没有一种方法可以将自定义容器视图控制器绘制成与UITabBarController非常相似的方式?
我的容器视图控制器与UITabBarController相似,因为:
  • 它切换屏幕内容
  • 响应用户操作某些小部件
但是它与UITabBarController不同,因为:
  • 它仅切换屏幕的一部分(由屏幕上的矩形框架实现)
  • 启动切换的用户操作涉及特定的UIControl,而不是屏幕底部的选项卡栏。
除此之外,我非常希望以与UITabBarController非常相似的方式对我的应用程序进行storyboard:
  • 一个场景代表容器视图,其中包含所有未切换的内容
  • 尽可能多的子场景用于可切换内容的每个项目。
  • 从每个切换控件到其相应的子场景的一个segue。
然而,我还没有能够实现这一点。有没有一种方法(比人为地使我的切换容器视图控制器成为UITabBarController的子类更好)?
1个回答

1
据我所知,这是storyboarding远不如应该有用的领域之一。
从我的观察来看,您可以手动放置所有的切换诱发小部件,将它们连接到各自的目标视图控制器并配置生成的segue为您的自定义UIStoryboardSegue子类的实例,覆盖perform并可选地在容器视图控制器中实现prepareForSegue:sender:...但是(a)您可能已经想到了这一点,(b)对我来说,这几乎听起来不像是您首先要达到的目标。
出于这个原因和其他原因,我会(也已经这样做了...)完全避免在这种情况下使用storyboards,并使用一个NIB与一个IBOutletCollection(在storyboards中不支持-您无法将任何内容连接到它们!)来代替视图控制器。
在我的情况下,我可以使用连接的视图控制器的tabBarItem的标题/图像属性动态填充UISegmentedControl的段或UITableView的行。

然而,这是一种权衡,因为您失去了在IB中配置视图控制器之间转换的能力。此外,它依赖于暗示的合同,即视图控制器具有正确配置的tabBarItem,而这无法在IB中表达。

在我的情况下,这并不重要,但您的情况可能大相径庭!

将容器的布局和使用拆分为单独的NIB有助于保持简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接