将一个复杂的Storyboard拆分成多个Storyboard
将下面的多个关系的Stroybord拆分:

选中需要拆分的部分,选择Editor,中的 Refactor to Storyboard


第二种方式创建:
用代码来创建关联:
,选中Refactor StoryBoard删除
添加一个UITabBarController

将MainViewController 和MainStoryBoard 关联

//抽象一个添加Storyboard的方法
private fun caddChildVc(storyName:String)
{
//1.通过StoryBoard获取控制器,!解包
letchildVc =UIStoryboard(name: storyName, bundle:nil).instantiateInitialViewController()!
//将childVc作为子控制器
addChildViewController(childVc)
}

运行效果跟之前是一样的

代码优化:
这里添加控制器,是要添加首页,直播,关注,我的四个控制器,分别要调用
private fun caddChildVc(storyName:String) 四次
addChildVc(storyName:"Home")
addChildVc(storyName:"Live")
addChildVc(storyName:"Follow")
addChildVc(storyName:"Profile")
这里可以抽象一下传入一个数组:
//定义添加子控制器的方法,通过StoryBoard获取控制器,强制解包,传入一个数组
private func addChilVC(storyNames : [String]){
forstoryNameinstoryNames{
let chilVC =UIStoryboard(name: storyName, bundle:nil).instantiateInitialViewController()!
//将chilVC作为子控制器
addChildViewController(chilVC)
} }
调用一次:
addChilVC(storyNames: ["Home","Live","Follow","Profile"])

运行效果一样: