2013-10-14 3 views
2

Я пробовал этот код для отображения MBProgressHUD, но когда я нажимаю на другую вкладку и обратно на эту вкладку, MBProgressHUD не может скрыть. Я попробовал это на 2 функции:Не могу скрыть MBProgressHUD в iOS

Для updatearray()

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
hud.mode = MBProgressHUDModeIndeterminate; 
hud.labelText = @"Loading.."; 
dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 
dispatch_async(dispatchQueue, ^(void) 
{ 
[self updatearray]; 
dispatch_sync(dispatch_get_main_queue(), ^{ 
[hud hide:YES]; 
}); 
}); 

для getVideolist()

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    hud.mode = MBProgressHUDModeIndeterminate; 
    hud.labelText = @"Loading.."; 
    dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 
    dispatch_async(dispatchQueue, ^(void) 
    { 
    [self getVideolist]; 
    dispatch_sync(dispatch_get_main_queue(), ^{ 
    [hud hide:YES]; 
    }); 
    }); 

В первый раз, он работает нормально. Но после нажатия на другую вкладку и обратно она не может скрыться.

+0

Сделал '[self updatearray];' закончить загрузку? – Raptor

+0

@ShivanRaptor: Да, он заканчивает загрузку. Я обновил свой вопрос. Pls проверяет. спасибо –

+0

обрабатывать исключение, если есть какие-либо ошибки. если там кто-нибудь увидит, что это такое. – KDeogharkar

ответ

1

Попробуйте сделать свою MBProgressHUD частной собственностью (сильной, неатомической). Затем вы можете ссылаться на один и тот же экземпляр вашего прогресса в других методах или потоках и обновлять или скрывать его.

+0

Большое спасибо. Я решил свою проблему –

Смежные вопросы