+-
iOS异常:NSUnknownKeyException:“在将xib作为所有者连接到ViewController之后,”此类不符合键值的键值“

我想用ViewController创建一个XIB。所以我使用ViewController创建了XIB(名为Test.xib),并将File的Owner自定义类设置为ViewController(名为:TestViewController)。

到现在为止还挺好。我可以在另一个视图控制器中加载xib并将其添加为子视图,如下所示:

let vc = Bundle.main.loadNibNamed(xibName, owner: self, options: nil)?.first as! UIViewController
vc.view.frame = contentView.bounds
vc.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

addChildViewController(vc)

contentView.addSubview(vc.view)

一旦我想通过在助理编辑器中拖动它来从我的ViewController中的xib创建IBOutlet,就会出现错误。

我查看了有关此错误的其他帖子,但似乎没有解释为什么在这种情况下发生这种情况,我无法使用建议的解决方案解决它。

我在“连接检查器”中看到,引用插座从StackView链接到“文件所有者”。那是对的吗?

enter image description here

0
投票
class YourViewClass:UIView{

       public static let nibName = "YourViewClass"
       public static let nib = YourViewClass.getNib()
       class func getNib() -> UINib {
           return UINib(nibName: YourViewClass.nibName, bundle: nil)
        }

  class func viewFromNib()-> YourViewClass {
       let nib = YourViewClass.getNib()
       return nib.instantiate(withOwner: self, options: nil).first as! YourViewClass
 }    }