Показывать индикатор загрузки перед загрузкой представления

У меня есть представление, его загрузка занимает некоторое время, поэтому после нажатия кнопки "Показать представление" загрузка занимает около 2 секунд.

У меня нет проблем с этим временем, но я хотел бы добавить сообщение "Загрузка" с момента нажатия кнопки до отображения нового представления.

Я использую MBProgressHUD, но использую другой поток для загрузки представления, так что это не очень хорошая идея.


Код у меня есть до сих пор

[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    [self presentModalViewController:testViewController animated:YES];

    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

Я просто хочу показывать "загрузку" до тех пор, пока не загрузится следующее представление. Используя этот подход, у меня есть масса проблем в следующем представлении из-за невыполнения метода viewDidLoad в основном потоке.

Любая идея, как я могу это исправить?


person Andres    schedule 28.12.2012    source источник


Ответы (1)


Что вам нужно сделать, так это загрузить другое представление в основной поток, и после загрузки представления показать MBProgressHUD. Затем выполните операции, которые занимают некоторое время в фоновом режиме, используя подход dispatch_async.

person Joe    schedule 28.12.2012
comment
да, но мне действительно нужно показать MBProgressHUD перед загрузкой представления, у меня нет доступа к этому представлению, поэтому я просто могу показать загрузку до загрузки представления, а не после :( спасибо - person Andres; 28.12.2012