从另一个类重新加载 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:重新加载 UITableView 后滑动显示数据

如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图

从另一个视图类重新加载集合视图数据

UITableView 强制 sectionIndex 更新而不调用 reloadData

UITableView 通知 UITableViewCell 重新加载

重新加载 UITableview 时出现问题..!