微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决选择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

    });
});
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。