obe*_*aum 1 iphone reload tableview
我想运行代码[tableView reloadData],除了我想从一个单独的类调用它到我想重新加载数据的视图控制器.
(注意:如果重新加载tableview比reloadData更有效,请加入).
假设我想重新加载的视图是'RootViewController',我目前在'DetailViewController'中,我需要做些什么来使它工作.
我现在最好的尝试是[RootViewController.tableView reloadData],但它不对.(我得到错误:预期':'之前.令牌.
此致,@ norskben
您可以使用通知或协议.
使用通知:
在完成保存数据之后和从方法返回之前发布通知.像这样的东西:
//发布通知[[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()方法中重新加载表.
| 归档时间: |
|
| 查看次数: |
7039 次 |
| 最近记录: |