Я написал свою собственную Button, Textfield, ..., classes. В раскадровке в «Custom Class» я установил класс в UIElement. Это работает очень хорошо.Требуется init? (Coder aDecoder: NSCoder) не называется
Теперь мне нужна панель инструментов, которая добавлена программно. Когда я добавляю панель инструментов в свой 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
}
В моей ViewController я стараюсь называть так:
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 –