
[英]Can't add a UIView loaded from XIB as a subView of a ViewController view
[英]Can't load UIView from .xib file
我正在尝试从XIB文件加载UIView
,但是它给了我这个错误:
致命错误:尚未实现init(coder :):文件/ Users / Skole-Pc / Desktop / IOS-Apps / CSGO Quiz Battle / AlertView.swift,第397行
这是我的XIB文件:
这是与XIB文件链接的类:
class HelpAlert: UIView {
@IBOutlet var help1: UIButton!
@IBOutlet var help2: UIButton!
@IBOutlet var help3: UIButton!
@IBOutlet var cancel: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
}
@IBAction func help1Action(sender: AnyObject) {
let action1 = self.action1
// deliberately set to nil just in case there is a self reference
self.action1 = nil
guard let block = action1 else { return }
block()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
}
这样,我试图将HelpAlert
添加到我的ViewController
:
if let alert = NSBundle.mainBundle().loadNibNamed("HelpAlert", owner: self, options: nil).first as? HelpAlert {
alert.frame = CGRect(x: CGRectGetMidX(view.bounds), y: CGRectGetMidY(view.bounds), width: view.bounds.width * 0.9, height: view.bounds.width * 0.9 * (750/650))
view.addSubview(alert)
}
那就是当它给我错误时,我该如何解决?
由于调用fatalError()会产生错误。 删除此方法,并使用编码器调用super的init版本以实现适当的行为:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.