带有标签栏 Controller 的 iOS 数据

标签 ios objective-c uitableview

我有一个 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/

相关文章:

ios - 创建类似于邮件应用程序菜单的 iPhone 弹出菜单

ios - 静态更改特定的 UITableView 单元格高度而无需重新加载

iphone - 自定义按钮显示在模拟器上,但不显示在iPhone设备中

ios - 从另一个 View Controller 停止dispatch_async内部的无限while循环

swift - 表格 View 仅滚动到文本字段底部边缘

customtableview单元格中的iOS swift mapview

ios - 一个UITableView中的多个UICollectionView相互交织滚动

iOS:FBSDKShareDialog 自定义消息

android - Ionic 的 native "Push"插件导致错误

ios - 核心动画围绕点旋转