iphone sdk - 重新加载tableview数据 - 来自一个单独的类

obe*_*aum 1 iphone reload tableview

我想运行代码[tableView reloadData],除了我想从一个单独的类调用它到我想重新加载数据的视图控制器.

(注意:如果重新加载tableview比reloadData更有效,请加入).

假设我想重新加载的视图是'RootViewController',我目前在'DetailViewController'中,我需要做些什么来使它工作.

我现在最好的尝试是[RootViewController.tableView reloadData],但它不对.(我得到错误:预期':'之前.令牌.

此致,@ norskben

Mas*_*aro 9

您可以使用通知或协议.

使用通知:

在完成保存数据之后和从方法返回之前发布通知.像这样的东西:

//发布通知[[NSNotificationCenter defaultCenter] postNotificationName:@"DataSaved"对象:nil];

在处理表的控制器中,实现

- (void) dataSaved:(NSNotification *)notification{

    [self.tableView reloadData];

}
Run Code Online (Sandbox Code Playgroud)

并在其viewDidLoad方法中添加以下代码以注册通知:

[[NSNotificationCenter defaultCenter] addObserver:self
                                selector:@selector(dataSaved:)
                                                 name:@"DataSaved" object:nil];
Run Code Online (Sandbox Code Playgroud)

最后,在dealloc方法中取消注册添加

[[NSNotificationCenter defaultCenter] removeObserver:self];
Run Code Online (Sandbox Code Playgroud)

使用协议:

开始创建一个带有前一个控制器可以使用的回调的协议.

@protocol dataSavedDelegate
-(void)dataSaved;
@end
Run Code Online (Sandbox Code Playgroud)

完成保存数据后:

[(id< dataSavedDelegate >)object dataSaved];
Run Code Online (Sandbox Code Playgroud)

现在,在您以前的控制器中,您处理委托方法:在dataSaved()方法中重新加载表.