我有一个全局可变数组。当我从其他viewController添加对象时,我希望tableView
更新。我知道我必须使用[tableView reloadData]
来更新我的tableView。但是我不知道我应该把这段代码放在哪里让我的tableView
保持最新状态?
我试过这样:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
AppDelegate *delegate= (AppDelegate*)[[UIApplication sharedApplication] delegate];
return [delegate.globalArray count];
[tableView reloadData];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
AppDelegate *delegate= (AppDelegate*)[[UIApplication sharedApplication] delegate];
UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:@"cell"];
cell.textLabel.text = delegate.globalArray [indexPath.row];
return cell;
[tableView reloadData];
}
答案 0 :(得分:2)
只要数组内容发生变化,就应该调用reloadData
。不要在那些方法中调用它(在返回之后什么也不做 - 很惊讶你没有得到关于无法访问的编译错误)
答案 1 :(得分:0)
SB。答案是对的。当数组内容发生变化时,应使用reloadData
。
为了维护表的更新,它严格依赖于您的应用程序流程。我会试着解释一下。
例如,假设启动应用程序时,表视图(由特定控制器管理,例如A)可见,您可以使用加号按钮添加其他元素。点击加号按钮,它将打开一个模态控制器(比如说B),可以让你添加元素。要从B到A进行数据重新加载,您可以使用通知,块等。
无论如何,如上所述,这取决于您的申请。也许,如果管理表的控制器每次都是新的,你不需要这种类型的方法......