Если вы устанавливаете значение значка до того, как контроллер вкладок будет даже представлен или полностью инициирован, то с индексом 0 пока ничего не будет. Контроллер вкладок не должен запускать все, пока не придет время для представления, в целях использования памяти. Вы можете сохранить ссылку на каждый экземпляр UITabBarItem
и установить для них значение значка. Или вам придется подождать, пока не будет вызван viewDidAppear, гарантируя, что все UITabBarItems полностью созданы ...
Я не могу предположить что-либо еще здесь, не видя остальную часть вашего кода.