用xib替换ViewController的uiview

时间:2017-05-28 10:11:41

标签: ios swift storyboard interface-builder xib

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

我的主要故事板(名为TabBarNav.storyboard)是一个Tab Bar View控制器,有4个项目(Home,Weight,Meals and Calories)。

我创建了一个单独的XIB UIView,名为ViewWelcome.xib,带有相应的类文件ViewWelcome.swift。

Home items视图控制器有一个名为" ViewControllerHome.swift"

的类文件

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

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

我这样做的原因 :( 故事板和xibs的混合)我希望每个部分(家庭,体重,膳食和卡路里)都是独立的故事板,以便SB不会变得混乱,并在以后避免多个人在接口文件上工作时git中的合并问题。 Storyboard

2 个答案:

答案 0 :(得分:1)

最简单的方法是创建&在viewDidLoad

中添加您的笔尖视图
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)
    }
}

否则请参阅this

答案 1 :(得分:0)

这对我有用。试一下 。 。

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