【问题标题】:Could not load NIB in bundle Xcode8无法在捆绑包 Xcode8 中加载 NIB
【发布时间】:2017-11-01 22:37:54
【问题描述】:

我遵循了一个教程,但是当我尝试运行我的代码时它崩溃了,因为它无法在包中加载 NIB。

这是我的代码:

class BuyPremiumView: UIView {

override init(frame: CGRect) {
    super.init(frame: frame)
    setupView()
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    setupView()
}

// MARK: - Private Helper Methods

// Performs the initial setup.
fileprivate func setupView() {
    let view = viewFromNibForClass()
    view.frame = bounds
    view.autoresizingMask = [
        UIViewAutoresizing.flexibleWidth,
        UIViewAutoresizing.flexibleHeight
    ]
    addSubview(view)
}

// Loads a XIB file into a view and returns this view.
fileprivate func viewFromNibForClass() -> UIView {
    let bundle = Bundle(for: type(of: self))
    let nib = UINib(nibName: String(describing: type(of: self)), bundle: bundle)
    let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
    return view
}

}

有人知道如何解决这个问题吗?

【问题讨论】:

  • 好的,作为一个快速更新,我尝试在一个单独的项目中执行相同的步骤,并且它在那里工作,但是当我尝试在我当前正在处理的项目中执行它时它不起作用。

标签: ios swift view swift3 xcode8


【解决方案1】:

如果您要从笔尖加载视图,我认为最好的简单方法是:

   var yourView : YourView =  NSBundle.mainBundle().loadNibNamed("myXib", owner: self, options: nil)[0] as! YourView

希望对你有帮助

【讨论】:

  • 你会在哪里输入这个?你会用我的一些代码替换这段代码吗?
  • 你可以替换这一行:` let view = viewFromNibForClass() with var yourView : YourView = NSBundle.mainBundle().loadNibNamed("myXib", owner: self, options: nil)[ 0]作为!你的视图`,你的视图等于视图,
  • 不幸的是它也没有
  • 不幸的是,这也不起作用,但谢谢
猜你喜欢
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 2014-08-24
相关资源
最近更新 更多