在加载视图IOS之前等待所有方法完成

时间:2012-11-19 20:17:25

标签: ios uiviewcontroller

我有一个带有调用Web服务器的方法的UIViewController,我希望在显示UIViewController之前等到这个方法完成。

我该怎么做?

谢谢,

3 个答案:

答案 0 :(得分:3)

如果您通过http请求或类似内容调用网络服务器,则可以为didFinish事件设置自定义委托方法,并在此处显示viewController

看看ASIHTTPRequest

答案 1 :(得分:0)

你可以使用盛大的中央调度(GCD),这是一个例子:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //Web Service Calls

        dispatch_async(dispatch_get_main_queue(), ^{
            //UI Stuff
        });
    });

答案 2 :(得分:0)

您应该在显示视图控制器之前请求数据。 然后,使用指定的初始化视图控制器并显示他的数据。 示例(使用AFNetworking框架)

[[AFAppDotNetAPIClient sharedClient] getPath:@"stream/0/posts/stream/global" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) {
    NSLog(@"JSON: %@", JSON);
    MyModel model = [self parse:json];
    ViewController *vc = [[ViewController alloc] initWithData:model];
    [self.navigationController pushViewController:vc animated:YES];

} failure:nil];