Вы хотите загрузить данные в отдельном потоке. Лично я бы вставил представление загрузки в главное представление, а затем создал новый поток, который загружает данные. После загрузки данных вы можете выполнить маршалинг обратно в поток пользовательского интерфейса, закрыть представление загрузки, а затем представить любое представление, в котором вы будете отображать свои данные.
Ваша реализация будет выглядеть примерно так:
// push loading view..
// spawn thread
[NSThread detachNewThreadSelector:@selector(loadData:) toTarget:self withObject:nil];
-(void)loadData:(id) obj {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// load your data
[self performSelectorOnMainThread:@selector(updateUI:) withObject:data waitUntilDone:NO];
[pool release];
}
-(void)updateUI:(id)data {
// update the data
}