加载XIB此类不符合键

时间:2018-06-27 06:53:07

标签: ios swift cocoa-touch xib

我只是创建了名称为UIView的自定义PopupViewForViewMoreDetail,并且想将此自定义视图添加到我的 ViewController 中,但是每次出现错误时都不会出现

  

由于未捕获的异常“ NSUnknownKeyException”而终止应用程序,原因:“ [<< 0x7f8155f2e430> setValue:forUndefinedKey:]:此类不适用于键mainView的键值编码兼容。”

如果我删除了 mainView IBOutlet ,那么另一个变量将显示错误。

下面是我的代码

import UIKit

class PopupViewForViewMoreDetail: UIView {

    @IBOutlet var darkBGView: UIView!
    @IBOutlet var outerView: UIView!
    @IBOutlet var mainView: UIView!
    @IBOutlet var btnClose: UIButton!

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

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

并将此视图添加到我的viewController类中,如下所示。

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

以下是我的 IBOutlets

的屏幕截图

enter image description here

我还检查了以下答案,但没有帮助我。

What does this mean? "'NSUnknownKeyException', reason: … this class is not key value coding-compliant for the key X"

指导我代码中哪里出问题了?

2 个答案:

答案 0 :(得分:8)

尝试:

  

步骤1:

let viewMoreDetailPopUp =  UINib(nibName: "PopupViewForViewMoreDetail", bundle: nil).instantiate(withOwner: self, options: nil).first as! PopupViewForViewMoreDetail
  

步骤2:   确保您为视图设置类,而不是文件的所有者enter image description here

enter image description here

  

第3步:   移除所有插座,然后再次重新插座

答案 1 :(得分:0)

对我来说,是我复制了一个 xib 来制作一个新的变体,它没有选中从目标继承模块。