如何以编程方式制作呈现新情节提要的标签栏?

How to programatically make tab bar which presents new storyboards?

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

我已经完成了与本教程类似的操作: http://swiftdeveloperblog.com/code-examples/create-uitabbarcontroller-programmatically/

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


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

我也不知道在内存方面这是否不好,因为每次加载一个全新的情节提要时,点击栏中的选项卡会变慢吗?

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

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

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

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

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

我觉得这是一种非常实用的减少故事板大小的方法。构建视图控制器后,它们应该使用 UITabBarController 进行缓存。不要担心情节提要加载的性能,除非您看到某些东西变慢了。 Apple 非常擅长这些东西的清理和性能。

这个 post 稍微解决了这个问题:

  1. 在您当前的故事板中创建故事板参考

  2. 现在在您的故事板参考集详细信息中

  3. 现在将这个故事板参考嵌入到标签栏中