我们的应用程序有一个带有一些自定义节标题的UITableViewController。
这些部分标题是使用UIViewController和包含各种标签和图形的Xib文件实现的。
进行服务器调用以从服务器检索动态数据,一旦检索到部分标题ViewControllers在NSMutableArray中创建,然后在- (UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
方法中返回controller.view以获取相应的部分。处理服务器端内容接收的回调调用[self.tableView reloadData]
以显示数据。
这一切在iOS5之前都运行良好。但是,由于iOS5表格加载了这些部分,但它们看起来是空白的(如在Xib中定义的那样)而没有特定的数据。只有当您手动滚动表并且部分被强制重绘时,才会在部分标题视图中填充数据。
我已经尝试了很多技术来实现这一点。唯一能够接近的黑客就是在0.5秒后输入一个叫[self.tableView reloadData]
的NSTimer。这种情况不可靠,但有一个闪光灯,如果屏幕上有很多部分,那么屏幕最初会在空白处滚动,直到它们被迫刷新为止。
我想知道我在viewController视图中发送部分标题的技术是否有缺陷,或者我需要明确地要求它重绘。我使用了viewController,因为Xib更容易布局复杂视图。
其他想法是服务器的回调是否没有正确调用reloadData。我正在使用ASIHTTP包和委托回调。
任何帮助非常感谢
答案 0 :(得分:1)
可能是从一些后台线程发生的重新加载。尝试:
[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES]