使用IBOutlets加载NIB / XIB文件

时间:2016-08-31 22:21:56

标签: ios swift xcode uiview xib

我想从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:]:此类不符合关键短语的密钥值编码。

我已经检查过XIB文件中没有任何孤立的IBOutlets。因此我认为这是因为我没有将nib投射到CardView课程,所以我尝试了这个:

  

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

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

  

无法投放类型的价值' UIView' (0x10c058df8)到' LazyFlashCards.CardView' (0x10934bb00)。

所以我猜测我错误地实例化了XIB文件,但我不知道"正确"这样做的方式

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:-1)

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

https://github.com/lengocgiang/loadViewFromXib