Для тех, у кого есть аналогичная проблема, это также может произойти, потому что у вас длинный цикл или фрагмент кода, выполнение которого занимает много времени. Если это произойдет, ваш индикатор выполнения не будет отображаться до окончания цикла, что побеждает цель.
Для решения этой проблемы вам необходимо следующее:
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
Ваш код будет выглядеть примерно так:
- (IBAction)submitPost:(id)sender {
//now we show the loading bar and submit the comment
[SVProgressHUD showWithStatus:@"Submitting post" maskType:SVProgressHUDMaskTypeGradient];
SEL aSelector = @selector(submitDataOfPost);
[self performSelectorInBackground:aSelector withObject:sender];
}
Это в основном загрузит индикатор выполнения, и в фоновом потоке будет вызван метод, который вы хотите выполнить. Это гарантирует, что пользовательский интерфейс обновляется (показывает ход выполнения) одновременно с выполнением вашего кода.