У меня есть пользовательский UITabBarController без файла NIB. Контроллеры навигации всех модулей создаются в методе viewDidLoad с функцией создателя. Я хочу добавить coreDataStack с параметром через функцию создателя, например:
override func viewDidLoad() {
super.viewDidLoad()
let aModuleNavCont = aModuleBuilder.createaModule(coreDataStack) as! UINavigationController
...
}
Но перед этим я должен установить свойство coreDataStack в своем собственном классе UITabBarController.
Я написал этот init:
init(coreDataStack: CoreDataStack) {
self.coreDataStack = coreDataStack
super.init(nibName: nil, bundle: nil)
}
Но он сказал: 'обязательный' инициализатор 'init (кодер :)' должен быть предоставлен подклассом 'UITabBarController'. Поэтому я сгенерировал этот код с помощью Xcode:
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Теперь сборка завершена успешно, и приложение работает хорошо (выглядит хорошо), но я догадываюсь, что это не очень хорошее решение.
Я 'попытался добавить super.init(coder: aDecoder)
строку в требуемом init, но он сказал "Свойство' self.coreDataStack 'не инициализировано при вызове super.init".
Я пробовал несколько вещей, но понятия не имею, что мне делать, чтобы справиться с этим хорошо. Не могли бы вы помочь с этим?
Заранее благодарим за любую помощь, которую вы можете оказать.