带标签栏控制器的iOS数据

时间:2014-03-07 14:54:37

标签: ios objective-c uitableview

我有tabBarController与一些tableViewController s。

相关联

这些tableViewController有自定义标题部分(.xib),因此我的文件结构如下:

MainViewController.h
MainViewController.m

TableHeader.xib
TableHeader.h
TableHeader.m

当我在MainViewController.m中加载此自定义标题部分时,我将NSString发送到表标题中的函数。(我将其发送到函数viewForHeaderInSection

问题是,当用户显示第一个tableview,第二个,第三个等时;当他回到每个例子的第一个tableview时,我在TableHeader上发送的NSString是错误的,因为我的函数viewForHeaderInSection没有被调用,所以我的TableHeader加载了最后一个tableviewcontroller。当然,我需要在表头中使用正确的NSString,而不是旧的。

很难描述......我希望它很清楚。

THX,

1 个答案:

答案 0 :(得分:1)

要强制tableView重新加载您可以调用的数据:

[tableView reloadData]; or [self.tableView reloadData];

将其添加到viewDidAppeare:动画方法,它将强制表视图刷新数据。 我无法看到你获得正确的NSString的方式,也许你必须将这个逻辑添加到viewDidAppeare:在重新加载数据之前也是动画。

//扩展

如果您有大量数据,则可以只重新加载一个部分:

[tableView reloadSections: withRowAnimation:];

或者你可以创建自定义标题视图,你可以为它添加属性/ ivar,你可以只重新加载标题:

[myCustomHederView setNeedsDisplay];