Вам нужно
разбить задачу на подзадачи. Давайте сформулируем:
- Как установить цвет фона перед показом контроллера
- Как устанавливать фон для контроллера
- Как менять фон у контроллера
- Как сменить фон по событию
Теперь стало понятно что ваш вопрос состоит из нескольких, а значит хорошо бы их разбить. Но как написали, так написали. Давайте погружаться.
Как установить цвет фона перед показом контроллера?
Дефолтные значения настраиваются в методе
viewDidLoad. Вы правило подозревали в вопросе.
Как устанавливать фон для контроллера?
Вы можете установить фон к корневого вью. Но я бы предложил вариант с UIImageView, растянутой к краям родителя и установкой image. Это может в каком-то смысле инкапсулировать логику фона и заменить класс на более интересный/сложный в будущем.
Как менять фон у контроллера?
Чтобы менять фон, нужно иметь доступ к контейнеру картинки. К примеру вы сделали проперти backgroundImageView, тогда изменить image не составит труда:
class ViewController: UIViewController {
var backgroundImageView = UIImageView()
func viewDidLoad() {
super.viewDidLoad()
backgroundImageView.image = UIImage()
}
func changeBackground() {
// Пример смены фона по вызову функции. Объект UIImage должен быть ваш, для примера пустой.
backgroundImageView.image = UIImage()
}
}
Как сменить фон по событию?
Нужно определить само событие. Если кнопка - тогда по таргету. Запись в БД - обсервер. Возможно подойдут системные нотификации, но вы с ними поосторожнее. В любом случае по любому из ивентов вы вызовете функцию, и в этой функции достаточно будет вызывать код из предыдущего вопроса.
P.S. Ваш вопрос очень тривиален, и, если честно,
именно поэтому на нем нет ответов. Вам стоит
изучить основы, и после перейти к практическим задачам.