Я думаю, что у вас есть две разные задачи:
- Выберите подходящий стиль представления в зависимости от текущего времени.(Я думаю, что это просто, просто получить местное время в
viewWillAppear
или в willMoveToWindow
с NSDate). - Обновление активного представления путем изменения времени.
Для решения второй задачи вы можете использовать таймеры.Просто используйте таймер, чтобы проверить время, для этого вы можете запланировать таймер на ближайшее время, где вы должны изменить стиль:
let timer = Timer(fire: Date(timeIntervalSinceNow: 1000.0), interval: 60.0 * 60.0, repeats:true) { (sender) in
//check current time and update view's background;
//or send notification about time
}
RunLoop.current.add(timer, forMode: .common)
Чтобы сделать ваш код лучше, создайте некоторый класс, который будет инкапсулировать создание таймера и размещение уведомления об изменении времени.
UPD
Я думаю, вам следует начать с самого начала.Сначала прочитайте о UIViewController , UIView , Центр уведомлений , Таймер .Также вы должны прочитать о событийно-управляемой архитектуре .После этого вы посмотрите на свое приложение и решите, где вы можете добавить функцию colorUpdate.
Если вам нужно полное решение без знания приложения, вы можете найти кого-то, кто может его создать для вас (на фрилансе или на работе или вкакое-то другое место, где вы можете найти аутсорсеров).
PS
Добавление функции colorUpdate в NotificationCenter - плохая идея, вы можете добавить этот метод в обработчик уведомлений.