Swiftビューの初期化fatalError( 'init(coder :)は実装されていません')



Swift View Initialization Fatalerror Init Coder



ビューをカスタマイズする場合、xibと純粋なコードを使用するために作成されます。
注:super.init(coder:aDecoder)を実装する必須のinit?(coder aDecoder:NSCoder)を追加する必要があります。
システムのデフォルトの実装はfatalError( 'init(coder :) has notimplemented')であり、xibは初期化されるとクラッシュします。

override init(frame: CGRect) { super.init(frame: frame) setupUI() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } override func awakeFromNib() { super.awakeFromNib() setupUI() }

TableViewcCellは、必要なinit?(coder aDecoder:NSCoder)でsuper.init(coder:aDecoder)を使用せずに初期化できます。



required init?(coder aDecoder: NSCoder) { fatalError('init(coder:) has not been implemented') } override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) createUI() loadLayout() } override func awakeFromNib() { super.awakeFromNib() createUI() loadLayout() }

TableviewHeaderFooterViewは、必要なinit?(coder aDecoder:NSCoder)でsuper.init(coder:aDecoder)を使用せずに初期化できます。

required init?(coder aDecoder: NSCoder) { fatalError('init(coder:) has not been implemented') } override init(reuseIdentifier: String?) { super.init(reuseIdentifier: reuseIdentifier) createUI() loadLayout() } override func awakeFromNib() { super.awakeFromNib() createUI() loadLayout() }