将ViewController的uiview换成xib

Replace ViewController's uiview with xib

我正在努力弄清楚如何使用 XCode 中的 Swift 从故事板中加载 xib。

我的主要故事板(称为 TabBarNav.storyboard)是一个包含 4 个项目(家庭、体重、膳食和卡路里)的选项卡栏视图控制器。

我创建了一个名为 ViewWelcome.xib 的单独 XIB UIView 以及相应的 class 文件 ViewWelcome.swift。

主页项目视图控制器有一个名为 "ViewControllerHome.swift"

的 class 文件

当触摸主页选项卡栏项时,我想用 ViewWelcome.xib 中的视图替换现有视图。

在 ViewWelcome.xib 中,我已将文件设为 ViewControllerHome 所有者,但是当我 运行 应用程序时,它仍然显示我最初创建故事板时使用 Home 项创建的视图。

我这样做的原因:(故事板和 xibs 的混合)我想要每个部分(Home,Weight,膳食和卡路里)与情节提要分开,这样 SB 就不会变得混乱,并且以后当多人处理界面文件时也可以避免 git 中的合并问题。

最简单的方法是在 viewDidLoad

中创建并添加您的 nib 视图
func viewDidLoad() {

    super.viewDidLoad()

    // create and add view from nib
    if let viewWelcome = UINib(nibName: " ViewWelcome", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? ViewWelcome {
        viewWelcome.frame.size = self.view.size
        self.view.addSubview(viewWelcome)
    }
}

其他参考

这对我有用。试一下 。 .

let newView = Bundle.main.loadNibNamed("ViewWelcome", owner: self, options: nil)?.first as! ViewWelcome
self.view = newView