我有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,
答案 0 :(得分:1)
要强制tableView重新加载您可以调用的数据:
[tableView reloadData]; or [self.tableView reloadData];
将其添加到viewDidAppeare:动画方法,它将强制表视图刷新数据。 我无法看到你获得正确的NSString的方式,也许你必须将这个逻辑添加到viewDidAppeare:在重新加载数据之前也是动画。
//扩展
如果您有大量数据,则可以只重新加载一个部分:
[tableView reloadSections: withRowAnimation:];
或者你可以创建自定义标题视图,你可以为它添加属性/ ivar,你可以只重新加载标题:
[myCustomHederView setNeedsDisplay];