私は自分のButton、Textfield、...、クラスを作成しました。 "カスタムクラス"のストーリーボードで、クラスをUIElementに設定しました。これは非常にうまくいく。必要なinit(コーダーaDecoder:NSCoder)が呼び出されていません
これで、プログラムで追加されたツールバーが必要になりました。私のViewControllerでツールバーを追加すると、すべてが問題ありません。しかし、私はこのように私自身のツールバークラスを作成したい。私のViewControllerで
class MyOwnToolbar : UIToolbar {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
//never called
self.backgroundColor = UIColor.redColor()
self.tintColor = UIColor.greenColor()
self.barTintColor = UIColor.blueColor()
}
override init(frame: CGRect) {
//error: super.init isn'T called on all paths before returning from initiliazer
}
私はこのような呼び出そう:
fromToolBar = MyOwnToolBar() //call nothing?
fromToolBar = MyOwnToolBar(frame: CGRectMake(0,0,0,0)) //doesn't work because init(frame: CGRECT) doesnt work
働いていた私のViewControllerで
旧コード:
self.untilToolBar = UIToolbar(frame: CGRectMake(0,0,0,0))
untilToolBar?.backgroundColor = redColor
untilToolBar?.tintColor = greenColor
untilToolBar?.barTintColor = blueColor
は、だから、私は実用的なソリューションを使用することができますが、私はしたいです私のコードがうまくいかない理由を解明する。だから誰かが解決策や良いリンクを持っているかもしれない。
あなたはawakeFromNibメソッドの内部でそれをカスタマイズする必要が –
http://stackoverflow.com/a/29783546/2303865 –