选择UITableView后如何推送加载视图?

| 目前,我无法显示加载视图。过程如下: 在UITableView中选择行 从主视图弹出UITableView 将Loadingview推入mainview 调用使用JSON请求的long方法 问题是当我选择表中的行时,它会在那里暂停直到一切完成。我该如何解决?     
已邀请:
        您需要将数据加载到单独的线程上。就个人而言,我要做的是将加载视图推入主视图,然后生成一个新线程来加载数据。数据加载完毕后,您可以编组回UI线程,关闭加载视图,然后显示将在其中显示数据的任何视图。 您的实现将如下所示:
// 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
}
    
        使用GCD并发送异步请求,请求完成后转到主线程并执行您想要的操作。
//addProgressIndicator
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(0, 0), ^{
    //call your request. Here could be your call back too, depends to architecture of your code
    NSDictionary *response = [WebService sendRequest];

    dispatch_async(dispatch_get_main_queue(), ^{

        //removeProgressIndicator
        //do what you want after request is finished with your UI

    });
});
    

要回复问题请先登录注册