我有一个 tabBarController
,它与一些 tableViewController
链接。
这些 tableViewController
有一个自定义标题部分 (.xib),所以我的文件结构如下:
MainViewController.h
MainViewController.m
TableHeader.xib
TableHeader.h
TableHeader.m
当我在 MainViewController.m
中加载此自定义 header 部分时,我将 NSString
发送到表 header 中的函数。(我在函数 中发送它viewForHeaderInSection
)
问题是,当用户显示第一个 tableview、第二个、第三个等等时;当他返回每个示例的第一个 tableview 时,我在 TableHeader 上发送的 NSString 是错误的,因为我的函数 viewForHeaderInSection
没有被调用,所以我的 TableHeader 加载了最后一个 tableviewcontroller。当然,我需要在表头中使用正确的 NSString,而不是旧的。
很难描述...我希望它很清楚。
谢谢,
最佳答案
要强制 tableView 重新加载数据,您可以调用:
[tableView reloadData]; or [self.tableView reloadData];
将其添加到 viewDidAppeare:animated 方法中,它将强制 TableView 刷新数据。 我看不到您获得正确 NSString 的方式,也许您还必须在重新加载数据之前将此逻辑添加到 viewDidAppeare:animated。
//扩展
如果你有很多数据,你可以只重新加载一个部分:
[tableView reloadSections: withRowAnimation:];
或者你可以创建自定义标题 View ,你可以为它添加属性/ivar,你可以只重新加载标题:
[myCustomHederView setNeedsDisplay];
关于带有标签栏 Controller 的 iOS 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22253411/