Как я могу заполнить UIViewController после его загрузки? - PullRequest
0 голосов
/ 29 января 2010

Мне бы хотелось, чтобы мой UIViewController появился на экране с UILabel «Загрузка ...» в центре, а затем, как только он отобразился, начал загружать данные для отображения.

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

Какой лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 29 января 2010

Если я не понял вашу цель, я думаю, что вы просто хотите посеять пользователю статус «загрузки», верно? если это так, я предлагаю вам использовать простой ViewController для отображения метки «Загрузка ...», а затем создать MainViw или следующий вид, который вы хотите показать пользователю, в конце, когда это будет сделано, скрыть первый вид шоу MainView на экране ...

0 голосов
/ 29 января 2010

Лучше делать это в потоке с viewDidLoad и вызывать ваш метод в потоке, перед вызовом потока показывать вашу метку, а когда данные загружаются через поток, скрыть метку.

Вы можете сделать это так.

-(void)viewDidLoad{
[self showLabel];
[NSThread detachNewThreadSelector:@selector(loadData:) toTarget:self withObject:nil];
}

Обновление

- (void) loadData:(id)object{  
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
   //Network Operations
   //...  
   //...  
   //...  
   //...  
   [self performSelectorOnMainThread:@selector(reloadView:) withObject:arg waitUntilDone:[NSThread isMainThread]];  
   [pool release];  
}  

Надеюсь, это поможет. Спасибо,

Madhup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...