在调用中缺少参数’coder’的参数

我已将自定义UIButton编码为:

class AccountOpeningButton: UIButton { required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) ...... } } 

我能够使用我的Storyboard成功实例化这个类。 现在,我做了一个UIView并想在我的UIView中添加这个按钮:

 var customView:UIView = UIView() customView.frame = CGRect(x: 0, y: 0, width: 350, height: 250) ..... let fromDateBtn:UIButton = AccountOpeningButton()//Error comes here as : Missing Argument for parameter 'coder' in call customView.addSubview(fromDateBtn) 

所以请帮助动态重用此代码。

PS:我提到了http://napora.org/nscoder-and-swift-initialization/ 致命错误:使用未实现的初始化程序’init(coder :)’用于类 Class没有实现其超类的必需成员但是没有成功。

================================================== ===================== 尝试过

 let fromDateBtn:UIButton = UIButton() as! AccountOpeningButton 

抛出CastException 无法将’UIButton’类型的值转换为’.AccountOpeningButton’

替换此行

 let fromDateBtn:UIButton = AccountOpeningButton() 

有了这个:

 let fromDateBtn = AccountOpeningButton() 

并在您的课程中添加此方法

 override init(frame: CGRect) { super.init(frame: frame) } 

您可以拥有多个init方法,但必须遵守inheritance和层次结构规则。 你需要明确地理解所谓的便利初始化器。

有关详细信息,请在此处