Сначала нужно многое понять, поэтому я не могу дать вам точное решение, но вот несколько вещей, на которые стоит обратить внимание:
Когда ваш viewController дает сбой, аниматоры останавливаются. Может быть, таймер тоже. Так что это ключ номер один. Возможно, вы захотите переопределить viewDidAppear и перезапустить анимацию либо с самого начала, либо, если вы отслеживаете состояние, то с того места, где оно остановилось. На видео ясно, что, когда твой таймер тикает в первый раз, он запускает анимацию. var timerInterval: Double = 5.0
Скорее вы должны запустить его правильно, когда viewDidAppear или когда viewWillAppear (это тоже должно работать).
Другое дело;viewDidLoad не будет вызываться на элементах панели вкладок во второй раз, только в первый раз. Когда у вас слишком много состояний и обработчики завершения обрабатываются асинхронно, и они полагаются друг на друга, чтобы делиться некоторыми данными, а вы прерываете это, останавливаявсе они (приложение делает скорее), эти вещи случаются, обычно обрабатывают исчезновение и появление viewController, не полагайтесь на viewDidLoad
Третья вещь, на которую нужно посмотреть: Возможно, вам придется проверитьто, что происходит, когда приложение входит в пакет, или входит в приложение AppSwitcher, или достигается доступность, это следующие случаи, когда что-то пойдет не так.