首页 文章

使用IBOutlets加载NIB / XIB文件

提问于
浏览
3

我想从XIB文件加载UIView,我能够通过以下方式成功完成:

让nib = UINib(nibName:“CardView”,bundle:nil).instantiateWithOwner(nil,options:nil).first as!的UIView

CardView 是我的XIB文件的名称 . 现在,当我尝试将 IBOutlet 添加到XIB文件时:

enter image description here

我收到此错误:

'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:此类不是关键短语Label的键值编码兼容 .

我已经检查过没有't any orphan IBOutlets in the XIB file. So thinking that it was because I didn' t将 nib 强制转换为 CardView 类,我试过这个:

让nib = UINib(nibName:“CardView”,bundle:nil).instantiateWithOwner(nil,options:nil).first as! CardView

但我最终得到了这个错误:

无法将'UIView'(0x10c058df8)类型的值转换为'LazyFlashCards.CardView'(0x10934bb00) .

所以我猜我正在错误地实例化XIB文件,但我不知道“正确”的方法来做到这一点

2 回答

  • -1

    如果您在测试中遇到此问题,则需要将所有者设置为测试目标 .

    bundle.loadNibNamed("myNib", owner: testSubject) // owner != nil
    
  • 0

    我刚刚写了一个例子来通过swift从XIB加载uiview,你可以阅读,希望这对你有所帮助!

    https://github.com/lengocgiang/loadViewFromXib

相关问题