【发布时间】:2012-02-04 02:47:55
【问题描述】:
我需要从我的故事板上执行一个转场。在这种情况下调用的方法是-[UIViewController performSegueWithIdentifier:sender:]。此方法依赖于UIViewController 的storyboard 属性来查找情节提要(以及转场)。
但是,当 UIViewController 不是从情节提要创建时,不会设置 storyboard 属性。由于它是只读的,因此我无法在加载情节提要的位置以编程方式对其进行设置。
所以问题是:如何从以编程方式加载的故事板执行转场?
如果不可能,那可能是因为我的架构不正确。这是用例:
该应用是旧版标签栏应用程序,其中 8 个标签中的每一个都有自己的 NIB 文件。 8 个选项卡中的许多选项卡都相当复杂,并且可以从情节提要中受益匪浅,尤其是原型表单元格和静态表。所以我想改进应用程序以使用故事板。
然而,一个巨大的故事板似乎不是一个好主意:它会阻止对应用程序的增量更改,它会很笨重,它会使团队成员难以独立处理他们的标签。
正确的模块化水平似乎让UITabBarController 拥有自己特定的故事板。这使得每个选项卡都可以按照自己的节奏发展,并使每个开发人员更容易在他们的选项卡上工作,几乎没有源代码控制冲突。
到目前为止,我的方法是包含 UITabBarController 及其每个主要子视图控制器的主 nib 文件。子视图控制器从他们的viewDidLoad 方法加载他们的故事板。从那里,他们无法执行他们的转场。
另一种方法是从故事板创建子视图控制器,但是我怎样才能将它们连接到UITabBarController?我在哪里以编程方式加载情节提要?
感谢您的任何建议。
【问题讨论】:
-
请参阅[在 iOS 中使用多个故事板][1]。 [1]:stackoverflow.com/questions/8297701/…
标签: cocoa-touch ios5 uitabbarcontroller storyboard