【问题标题】:Replace ViewController's uiview with xib将 ViewController 的 uiview 替换为 xib
【发布时间】:2017-10-28 19:07:46
【问题描述】:

我正在努力弄清楚如何在 XCode 中使用 Swift 从情节提要中加载 xib。

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

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

主页项目视图控制器有一个名为“ViewControllerHome.swift”的类文件

当 Home 标签栏项目被触摸时,我想用 ViewWelcome.xib 中的视图替换现有视图。

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

我这样做的原因:(故事板和 xibs 的组合)我希望每个部分(家庭、体重、膳食和卡路里)与故事板,这样 SB 就不会变得杂乱无章,并且以后在多人处理接口文件时也可以避免 git 中的合并问题。

【问题讨论】:

    标签: ios swift storyboard interface-builder xib


    【解决方案1】:

    最简单的方法是在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)
        }
    }
    

    否则请参考this

    【讨论】:

      【解决方案2】:

      这对我有用。试一下 。 .

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

      【讨论】:

        猜你喜欢
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-09
        • 1970-01-01
        • 2018-05-03
        • 1970-01-01
        相关资源
        最近更新 更多