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

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

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

【问题讨论】:

    标签: objective-c cocoa nstableview reloaddata


    【解决方案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 它没有意义.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 2012-12-19
      • 2017-10-19
      相关资源
      最近更新 更多