从另一个类重新加载 UITableView?
Posted
技术标签:
【中文标题】从另一个类重新加载 UITableView?【英文标题】:Reloading UITableView from another class? 【发布时间】:2012-01-07 02:27:16 【问题描述】:这是一个很多人都问过的问题,尤其是在 *** 上。
在表格视图上重新加载数据很容易,[self.myTableView reloadData];
,myTableView 是我的 UITableView 的实例,因为我使用的是 UIViewController 而不是 UITableViewController。
我想在更新数据(来自 Internet)后从另一个视图控制器重新加载表视图。数据包含在属性列表中。我尝试过使用协议、通知和其他一些东西,比如把它放在viewDidAppear:
中。没有什么对我有用。
是我没有想到还是我只是做错了一些方法?非常感谢您的帮助!
【问题讨论】:
好吧,终于自己解决了! 是什么解决了这个问题? 我在属性列表中有数据这一事实。我只是使用代码将数据初始化到表视图中,以便在需要时再次加载它。它变成了“重新加载”。 【参考方案1】:如果您想从另一个类访问 UITableView 对象或其他任何东西,您可以使用属性使其可访问:
ClassA.h
@interface ClassA
UITableView *tableView;
@property (nonatomic, readonly) UITableView *tableView;
@end
ClassB.m
- (void)reloadTableInOtherClass
[classAVariable.tableView reloadData];
【讨论】:
【参考方案2】:使用观察者模式+通知是一个好方法。让您的视图控制器决定何时重新加载数据也是一个好习惯。 为什么通知不起作用。你用过 addOvserver: 吗?
【讨论】:
以上是关于从另一个类重新加载 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图
UITableView 强制 sectionIndex 更新而不调用 reloadData