2012-01-16 40 views
0

我们的应用程序具有带有一些自定义节标题的UITableViewController。自定义UITableView节未在iOS5中加载

这些节标题是使用包含各种标签和图形的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

确保你在主线程 – 2012-01-16 05:07:32

回答

1

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

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

+0

THX重装的tableView,但没不会改变行为。就好像viewController.view不能识别它需要刷新/显示。只要你在屏幕上滚动它就会清新。 – joneswah 2012-01-16 21:39:01

+0

该问题不在reloadData上,而是在viewController中设置特定值的方法。将此方法放在performSelectorOnMainThread中进行排序。 – joneswah 2012-01-18 03:41:16