在我的应用程序中,我有一个UITableViewController
并根据用户选择实例化一个新的UIViewController
并通过tcp socket发送服务器请求。
在响应从服务器到达之前,它已经运行viewDidLoad
的“UIViewController
”方法。
在大多数情况下,答案尚未到来。
我的问题是:在收到响应并处理viewDidLoad
方法中的数据之前,如何阻止viewDidLoad
运行???
并且如果可能的话,也可以使整个过程在整个应用程序停止响应之前进行异步处理。
谢谢!
答案 0 :(得分:0)
您在viewDidLoad中执行的任何数据处理都将其移至单独的函数。当您从服务器通知视图控制器或调用委托接收数据时,在收到通知或委托调用后,通过调用您分开进行数据处理的方法进行数据处理。
答案 1 :(得分:0)
根据我的建议,首先你从表格中选择一行&而不是打电话给你的UiViewController&在这个类中,您可以编写一个单独的方法,如
-(void)GetData{}
比在后台线程中调用
[self performSelectorInBackground:@selector(GetData) withObject:nil];
这个呼叫服务的过程&在后台获取数据工作&当它的响应来自服务器你做一些事情,比如在视图中填充数据或显示它
通过这样做你的应用程序,直到你的回复来了。