0

我的 NSTableViewDelegate 类中有一个方法可以从外部类重新加载数据表:

- (void)reloadTable {

    NSLog(@"reload data %@", table);
    [table reloadData];
}

当我尝试从外部类调用此方法时,尝试重新加载的表为空:

reload data (null)

我在另一个类中使用以下代码调用此方法:

TableController *delegate = [[TableController alloc] init];
[delegate reloadTable];

现在,我认为这是因为我正在初始化一个表控制器的新实例并在该表控制器的实例上调用该方法。所以在我的reloadTable方法中,我使用self.table而不是表 - 这具有相同的结果:

reload data (null)

在 .xib 中,dataSource 和 delegate 被设置为 TableController 类。我想应该注意的是,我使用的是基于视图的 tableview,而我没有使用绑定。我错过了什么?

编辑:从这些答案看来,这些问题可能是由于此类只是表视图的数据源和委托而引起的。我应该为 TableView 创建一个 ViewController 的新类吗?我是否正确地说存在的类将是“模型”类,而我将创建的新类将是 MVC 中的“控制器”类?

编辑 2:我创建了一个 TableViewController 类并将“视图”出口设置为“Panel.xib”中的我的表视图。在我需要从中重新加载表的另一个类中,我执行以下操作:

 TableViewController *tv = [[TableViewController alloc] initWithNibName:@"Panel" bundle:nil];
 [tv.table reloadData];

不会产生错误,但不会重新加载表视图。

4

1 回答 1

0

您需要使用-initWithNibName:bundle:来创建您的 ViewController。

于 2012-05-15T01:51:56.467 回答