#ios #swift #iphone
#iOS #swift #iPhone
Вопрос:
У меня есть две раскадровки, и мне нужно из формы VC во второй раскадровке изменить цвет фона на VC из основной раскадровки. Я использую этот код в кнопке на второй раскадровке:
let vc = FirstScreenVC()
vc.view.backgroundColor = .black
и у меня эта ошибка:
«Неожиданно найдено значение nil при неявном развертывании необязательного значения»
в файле FirstScreenVC в viewDidLoad.
Debug сообщает, что 3 UIElement на FirstScreenVC равно нулю, но я вижу это, и это первая загрузка в приложении.
Комментарии:
1. Можете ли вы привести лучший пример своего кода?
Ответ №1:
Вы создали экземпляр нового FirstScreenVC, который не тот, который вы видите. В зависимости от того, как настроен ваш стек, вам нужно либо получить существующий ViewController, либо передать ссылку на него ViewController, который должен внести изменения.
Ответ №2:
Если вы используете контроллер навигации, вы можете использовать метод prepareForSegue при переходе на другую страницу.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as! SecondViewController
vc.view.backgroundColor = UIColor.black
}