NSTableView reloadData 外部类

Posted

技术标签:

【中文标题】NSTableView reloadData 外部类【英文标题】:NSTableView reloadData external class 【发布时间】:2014-01-14 15:08:30 【问题描述】:

我在“spielplan”类中有一个 NSTableview,我可以使用 reloadData 轻松重新加载它,但是如何从 AppDelegate.m 重新加载表格???

我认为,有一个简单的解决方案,但我不明白!

【问题讨论】:

【参考方案1】:

简短的回答:你不应该。

你的类spielplan(应该重命名为PMGameBoard)可能是一个管理视图的控制器类,包括tableView。所以这个控制器负责重新加载tableView的数据应该是需要的。

您的应用程序委托的外部事件,无论它是什么,都应该通过某种通知方式提供给spielplan 实例。确切的通信方法取决于事件的类型(NSNotification,...)。看到这个objc.io article。

【讨论】:

谢谢,你省了我很多精力!【参考方案2】:

在你的 spielplan.h 文件中创建属性或插座(取决于你是否使用故事板),例如

@property (nonatomic, strong) IBOutlets UITableView *myTableView;

并在 AppDelegate 文件中获取 spielplan 对象的引用并调用 reload 方法:

[spielplan.myTableView reloadData];

如果 spielplan 是 UITableViewController 的子类,则您不必在 AppDelegate 调用中为表视图创建插座或属性:

[spielplan.tableView reloadData];

请记住,当您尝试从 AppDelegate 获取对视图控制器的引用并且视图控制器不在视图层次结构中时,它可能会被释放,或者它可能尚未被分配并调用 reloadData 它没有意义.

【讨论】:

以上是关于NSTableView reloadData 外部类的主要内容,如果未能解决你的问题,请参考以下文章

NSTableView reloadData 内存泄漏

NSTableView reloadData - 索引超出范围异常

NSTableView 绑定和 tableViewSelectionDidChange

NSTableView 内的 NSTableViewCell

Xcode数组到NSTableView

iOS uitableview reloadData 不太好用