Поскольку вы наследуете от UIViewController, вы должны вызывать super.init
сразу после установки переменных в вашей init
функции
Когда вы наследуете класс и реализуете новую функцию init или переопределяете свою собственную функцию initВы должны (почти) всегда вызывать super.init.Давайте возьмем ваш пример, который вы унаследовали от UIViewController.UIViewController имеет несколько функций инициализации, которые вы можете использовать для инициализации контроллера представления.если вы не вызовете super.init, весь код внутри этих функций не будет вызван, и, возможно, контроллер представления не будет инициализирован.
В любом случае, этот фрагмент кода должен работать для вас:
class ViewController: UIViewController {
var button: UIButton?
init(button: UIButton) {
self.button = button
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}