У меня есть xib
(childXib
), связанный с его пользовательским UIView
swift через его владельца.
Вот как я инициализирую свой пользовательский UIView
:
// init for IBDesignable
override init(frame: CGRect) {
super.init(frame: frame)
let view = loadViewFromNib()
view.frame = bounds
addSubview(view)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
addSubview(loadViewFromNib())
}
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "CommentCellView", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
Когда я хочу добавить этот xib
(childXib
) в другой xib
(parentXib
), я получаю следующие ошибки:
ошибка: IB Designables: не удалось отобразить экземпляр MyRootView: агент выдал исключение.
Где MyRootView
- это файл, связанный с parentXib
ошибка: IB Designables: не удалось обновить состояние автоматического макета: агент вызвал исключение "NSInternalInconsistencyException": не удалось загрузить NIB в комплекте: "NSBundle (загружен)" с именем "MyIBDesignableCustomViewFilename"
Где MyIBDesignableCustomViewFilename
- это файл, связанный с childXib
.
Когда я отлаживаю его, нажимая " Debug
в Custom class
из Identity inspector
, он не работает из этой строки:
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
Все файлы xib
находятся в Copy Bundle Resources
на xib
Build Phases
.
Есть идеи, что не так?