viewDidLoad вызывается один раз и один раз: когда ваш контроллер просмотра загружается. Пытаться называть это несколько раз приведет к неприятностям.
Обычно вы настраиваете некоторые вещи в viewDidLoad (вещи, которые должны быть настроены ровно один раз), а другие в viewDidAppear или viewWillAppear (вещи, которые могут быть настроены по-разному, если ваше представление появляется несколько раз).
Создайте новый метод, который будет выполнять ваши настройки, которые обычно бывают в viewDidAppear или viewWillAppear, убедившись, что проблем нет, если этот код вызывается несколько раз. Измените viewDidAppear или viewWillAppear, чтобы вызвать этот метод. Затем в viewDidLoad создайте таймер, который вызовет это в нужное время, а в dealloc сделает недействительным таймер.
Если ваше приложение находится в фоновом режиме, даже если представление не загружено, нет необходимости в этом. В любом случае никто не заметит. Таймер вызывается немедленно, когда ваше приложение выходит на передний план (если оно должно было быть вызвано), и если ваше приложение было закрыто, будет вызван viewDidAppear.
Хорошо! Благодарю. У вас есть представление о том, как я могу это сделать? Я хочу, чтобы код (обновленный) выполнялся каждый новый день - никакого конкретного времени не требуется. – Rappe