我有一个UITableView,当用户点击表格的底部时,它会从服务器请求更多数据(类似于Twitter应用程序)。但是,我正在尝试使用模态segue来过滤数据以满足用户的需求。为了正确选择要过滤的数据,我必须加载所有数据以对其进行分类。为了加载所有内容,我需要发送多个NSURLConnections来加载多个页面。我试图这样做,当一个完成时,下一个开始。
但是,由于连接与connectionDidFinishLoading
完成,我还没有找到一种方法从prepareForSegue
内发送同步NSURLConnections。我尝试在prepareForSegue
中使用while循环,如下所示:
while (All of the data is not loaded) {
if (isLoading == NO) {
[self loadMoreResults];
}
}
其中“isLoading”是我的viewcontroller实现文件中声明的BOOL
。 isLoading在loadMoreResults
内将值更改为YES,并在NO
结束时更改回connectionDidFinishLoading
。但是,在prepareForSegue
范围内,isLoading永远不会从YES更改回NO。
这是一个多线程问题吗?我已经对其他问题进行了研究,看到NSURLConnection有一个类方法sendAsynchronousRequest:queue:completionHandler:
,其中完成处理程序可能会有所帮助,但我不确定如何使用它。
另外:我希望在上次连接完成后继续执行prepareForSegue
,而不是在发送请求后立即执行。
提前致谢!
答案 0 :(得分:0)
然后,您不应将segue直接从bar按钮项链接到storyboard中的视图控制器。
只需将一般segue与表视图控制器中的标识符链接到过滤器视图控制器。
在条形按钮项目中,从故事板为其创建操作,以便您可以先发送多个NSURLConnections。
最后,在您的代码中,在最后一次连接完成后,调用performSegueWithIdentifier
方法。