如何以编程方式制作提供新故事板的标签栏?

时间:2017-03-09 15:43:32

标签: ios swift xcode uistoryboard tabbar

我希望在我的应用程序的每个页面都有一个标签栏。我已将应用程序的主要4个部分(选项卡上的部分)分成4个不同的故事板。我现在想以编程方式制作标签栏,每次点击它都会加载一个新的故事板。

我做过类似的教程: http://swiftdeveloperblog.com/code-examples/create-uitabbarcontroller-programmatically/

但现在不知道如何将其转换为加载新的故事板而不仅仅是查看控制器?

虽然这是我的主要问题,但我也想知道这是否值得。我这样做的原因是将故事板分开,因为我仍然想使用故事板,但我不想让一个大型的故事板接管。但是,我可以这样做。

我也不知道记忆是否明智这不是很好,因为每次加载一个全新的故事板时,点击栏中的标签会减慢速度?

2 个答案:

答案 0 :(得分:2)

创建UIStoryboard并实例化初始视图控制器:

UIStoryboard(name: "TabOneStoryboard", bundle: nil)
    .instantiateInitialViewController() as! TabOneViewController

如果您不想实例化初始视图控制器,请通过id创建它:

UIStoryboard(name: "TabOneStoryboard", bundle: nil)
    .instantiateViewController(withIdentifier: "TabOneViewControllerID") as! TabOneViewController

请记住在故事板的属性检查器中设置初始视图控制器:Attribute inspector

我觉得这是减少故事板大小的一种非常实用的方法。构建视图控制器后,应使用UITabBarController缓存它们。除非你发现某些事情变得缓慢,否则不要担心故事板加载的性能。 Apple对这些东西的清理和性能非常满意。

这篇文章稍微解决了这个问题:Multiple storyboards: should I use a singleton pattern to cache them?

答案 1 :(得分:1)

  1. 在您当前的故事板中创建故事板参考 enter image description here

  2. 现在,您的故事板参考设置详情请参见此处 enter image description here

  3. 现在将此故事板参考嵌入tabbar