如何在调用Web服务之前加载完整的UIView

时间:2015-05-13 12:39:38

标签: ios objective-c uitableview uiviewcontroller

在我的项目中有左和右右侧幻灯片菜单,如果我点击左侧菜单的单元格,则UIViewController方法会调用一个UIViewControllers viewDidLoad

我正在调用基于SOAP的Web服务。 所以我的问题是当我点击UITableViewCell时。视图没有完全加载到屏幕,它被卡在那里。并且视图是完全加载的,当数据来自Web服务时,我可以完全显示。

所以我必须等待数据,而不是整个UIView那么如何在第一次点按时加载UIViewController 并在UIView出现后,我会放置活动指示符,这就是用户至少可以看到UIView中正在加载数据的原因

先谢谢,任何人都可以帮我解决这个问题。

修改:我试图将网络服务方法调用到viewWillAppear

2 个答案:

答案 0 :(得分:1)

- (void)performBackgroundTask
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //Do background work   (call your Web service method here)
        dispatch_async(dispatch_get_main_queue(), ^{
            //Update UI
        });
    });
}

在后台工作中调用Webservice并使用主队列加载Tableview

答案 1 :(得分:0)

 - (void)viewDidLoad {
[super viewDidLoad]; 

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{

    //Call ur web service in view did load or appear and add data in datsource of tableview

    dispatch_async(dispatch_get_main_queue(), ^{
        //table view reload data
    });

});

}