NSTableView reloadData外部类

时间:2014-01-14 15:08:30

标签: objective-c cocoa nstableview reloaddata

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

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

2 个答案:

答案 0 :(得分:1)

简短的回答:你不应该。

您的类spielplan(应该重命名为PMGameBoard)可能是一个管理视图的控制器类,包括tableView。因此,该控制器有责任重新加载tableView的数据。

应用程序委托的外部事件,无论是什么,都应通过某种通知方式提供给spielplan实例。确切的沟通方式取决于事件的类型(NSNotification,...)。请参阅此objc.io article

答案 1 :(得分:0)

在spielplan.h文件中创建属性或出口(取决于您是否使用了故事板),例如

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

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

[spielplan.myTableView reloadData];

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

[spielplan.tableView reloadData];

请记住,当您尝试从AppDelegate引用视图控制器并且视图控制器不在视图层次结构中时,它可以被取消分配,或者它尚未分配,并且调用reloadData它没有&#39有意义。