Не знаю точно, но сомневаюсь, что можно запустить viewDidLoad в фоновом потоке. Если это так, у вас нет возможности анимировать индикатор активности при запуске viewDidLoad.
Итак, на вашем месте я бы выяснил, что так долго занимает viewDidLoad, и поместил бы это в метод, который может работать в фоновом режиме.
Затем добавьте представление индикатора активности в свой метод viewWillAppear и удалите его после завершения фоновой задачи.
В зависимости от того, что вы делаете в viewDidLoad, это может потребовать большого количества рефакторинга и добавления методов делегатов.
Я думаю, вы загружаете что-то, что должно отображаться.