[英]UITableView weird reloadData issue
我陷入了一个非常奇怪的问题,他们正在做的是调用NSURLConnection sendAsynchronousRequest
,其中我重新加载tableView并且它没有任何问题。 当收到请求响应时,当站在同一个ViewController上时,这种情况正常工作。 当我调用sendAsynchronousRequest
并从ViewController移动然后在请求给出响应之前返回它时,会出现问题。 这次调用TableView reloadData
但在View上没有做任何事情。 我在这个dispatch_async(dispatch_get_main_queue(), ^{});
调用reloadData dispatch_async(dispatch_get_main_queue(), ^{});
它可以在mainThread
上运行。
在这方面的任何帮助都会很棒。
编辑1:
这是我到目前为止所得到的...当我启动NSURLConnection asyncRequest时,它保持对当前时间的tableView和数组的引用。但是当我从该视图导航然后返回视图时重新初始化所以tableView和数组有新的引用。 因此,当asyncRequest调用tableView ReloadData时,它会调用旧引用的tableView的reload,而不是现在可见的那个,因此不会重新加载tableView ...希望现在你可以提供帮助。
而不是在主线程上重新加载tableview,尝试在获取数据并重新解析数据后重新加载它。 在视图之间切换可能会导致您的tableview在数据来自服务器结果空白tableview之前重新加载,这是由于在主线程上调用某些方法引起的。
编辑:尝试仅在从服务器获得响应之后以及在加载数据之前初始化viewdidload中的tableview和数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.