【问题标题】:How do I effectively use multiple Storyboards for 100+ view controllers?如何有效地为 100 多个视图控制器使用多个 Storyboard?
【发布时间】:2017-04-17 15:29:21
【问题描述】:

所以我有一个应用程序,它完成后将在 Storyboard 中包含 100 多个视图控制器。我想创建多个故事板,以便在开发过程中更好地组织和减少延迟。我将拥有一个包含 6 个主要类别(视图控制器)的 main.storyboard,并将分支到其他视图控制器(无论是在同一个故事板中还是在另一个故事板中)。

我宁愿不在 main.storyboard 之外创建对我的 100 多个视图控制器中的每一个的引用。我使用导航器来移动我的视图控制器:

let vcName = identities[indexPath.row]
let viewController = storyboard?.instantiateViewController(withIdentifier: vcName)
self.navigationController?.pushViewController(viewController!, animated: true)

任何帮助将不胜感激。我会根据要求提供任何其他信息/说明或附加代码。

提前致谢。

【问题讨论】:

  • 您能否提供更多有关应用程序性质的背景信息?需要这么多视图控制器是不寻常的。你确定不能让它们更通用以便可以重复使用吗?
  • 正如@Jim 提到的,拥有这么多视图控制器看起来很不寻常。如果您确实需要它们,我建议将它们组织成多个故事板(基于您的类别)。实例化视图控制器时,您只需要额外的一行来指定情节提要。 let someXYZViewController = UIStoryboard(name: "CategoryXYZ", bundle: nil).instantiateViewController(withIdentifier: "someXYZViewController") as! SomeXYZViewController 另外,看看storyboard referencesraywenderlich.com/115697/…
  • 它是一个教学应用。每一页都与下一页不同。字体、图像、所有间距等。我意识到可能还有其他方法可以做到这一点。但奇怪的是,这似乎是最省时、更直接的方法。
  • 您是否正在为每个屏幕内容创建一个新的视图控制器?这不是构建内容繁重的应用程序的好方法。您应该提出内容的数据表示,然后为每种类型的内容创建一个视图控制器。
  • @Jim,我以前也想过,而且我很可能会考虑在未来这样做(例如应用程序的下一个版本)。目前我仍然缺乏经验,在应用程序开发方面相当新。感谢您的帮助。

标签: ios swift uiviewcontroller storyboard


【解决方案1】:

功能区域分解您的视图控制器,为每个(甚至多个)创建一个专用的故事板。然后,您可以使用 storyboard references 将它们链接在一起,例如,如果您担心自己可能会丢失全局视图。

您甚至可以在之后使用方便的 Extract Storyboard Xcode 菜单选项进行此故事板重构(即,选择 VC 子集,然后单击菜单编辑器 > 提取故事板)。

当然,假设您确实需要这么多视图控制器开始 ;-)

【讨论】:

  • 感谢您的回复。我会牢记这些事情。
  • 我最终将故事板分解为 main.storyboard(其中包含 6 个主要类别和一些工具),然后是 tools1.storyboard、tools2.storyboard 等。我确实创建了对每一个的引用main.storyboard 中的工具,以及对其他故事板中 6 个类别的引用。
猜你喜欢
  • 2014-07-08
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
相关资源
最近更新 更多