繁体   English   中英

无法从.xib文件加载UIView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM