我有一个带有调用Web服务器的方法的UIViewController,我希望在显示UIViewController之前等到这个方法完成。
我该怎么做?
谢谢,
答案 0 :(得分:3)
如果您通过http请求或类似内容调用网络服务器,则可以为didFinish
事件设置自定义委托方法,并在此处显示viewController
。
答案 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];