自定义UITableView部分未在iOS5中加载

时间:2012-01-16 04:44:57

标签: iphone ios ios5 uitableview

我们的应用程序有一个带有一些自定义节标题的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包和委托回调。

任何帮助非常感谢

1 个答案:

答案 0 :(得分:1)

可能是从一些后台线程发生的重新加载。尝试:

  

[self.tableView performSelectorOnMainThread:@selector(reloadData)   withObject:nil waitUntilDone:YES]