Представления, которые содержат UIWebViews, занимают много времени, как предупредить пользователя? - PullRequest
0 голосов
/ 26 августа 2011

Представления, содержащие UIWebView, загружаются вечно, и в течение нескольких секунд кажется, что приложение перестало работать. Я попытался вставить вид HUD в IBAction, но он не отображается. Есть ли у кого-нибудь какие-либо предложения относительно хорошего способа реализации этого (кстати, HUD-представление работает, оно просто не отображается, поскольку находится в том же действии, что и presentModalViewController).

-(IBAction)charities {

    [SVProgressHUD showInView:self.view status:@"Loading"];

    Charities *variable = [[Charities alloc]initWithNibName:nil bundle:nil];
    [self presentModalViewController:variable animated:NO];

}

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Понял. Я использовал NSTimer в том же действии, что и представление HUD, и вызвал функцию, которая вызвала бы новое представление. Теперь он отлично работает.

-(IBAction)charities {

    [NSTimer scheduledTimerWithTimeInterval:0.0000000000000000000001 target:self selector:@selector(loadCharities) userInfo:nil repeats:NO];

    [SVProgressHUD showInView:self.view status:@"One sec"];

 }

-(void)loadCharities {

    Charities *variable = [[Charities alloc]initWithNibName:nil bundle:nil];
    [self presentModalViewController:variable animated:NO];

}
0 голосов
/ 26 августа 2011

Создайте новый протокол делегата в Charities и установите любое представление, из которого вы выполняете этот код в качестве делегата. Затем из UIWebViewDelegate webViewDidFinishLoad: вызовите метод делегата, который представит модальное представление. Таким образом, вы видите загрузочный HUD до тех пор, пока веб-представление фактически не будет готово к просмотру, после чего представление будет представлено.

...