При попытке инициализации,
init(SelectedDay: String) {
super.init()
selectedDay = SelectedDay
}
вы получаете сообщение об ошибке: «Вы должны вызвать назначенный инициализатор суперкласса ViewController»
Поскольку вы не определили указанный инициализатор вViewController
, вы наследуете назначенный инициализатор его суперкласса UIViewController
, который равен init(nibName: String?, bundle: Bundle?)
.
Чтобы исправить это, добавьте инициализатор к ViewController
.Пусть это вызовет назначенный инициализатор.Вам также придется применить исправление-it для генерации init?(coder:)
.
class ViewController: UIViewController {
init() {
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Затем вернемся к AddHoraire
, я предполагаю, что у вас есть свойство selectedDay
.Это должно быть установлено до вызова super.init()
.Я бы также рекомендовал не использовать заглавные буквы в имени параметра.Просто используйте то же имя и различайте параметр и свойство, используя self.
для идентификации свойства.
class AddHoraire : ViewController {
private let selectedDay: String
init(selectedDay: String) {
self.selectedDay = selectedDay
super.init()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}