self.tableView reloadData在viewWillAppear中不起作用

时间:2013-04-16 16:24:56

标签: xcode uitableview reloaddata viewwillappear

我有一个Xcode应用程序,它创建一个tableview,然后使用来自sqlite数据库的数据填充它,这非常有效,并允许我将数据推送到新视图并删除等,

此tableview是标签栏控制器上加载的第一个视图。当我移动到同一个控制器上的另一个视图,即创建一个运动员时,问题就出现了,在这个视图中我可以将新的运动员添加到数据库中(工作正常)但是当我回到标签栏控制器上的tableview时,该表是相同的,我必须注销并重新登录以查看表中的更改,

我在viewWillAppear函数中尝试了[self.tableView reloadData],但这没有做任何事情。我知道这个函数正在被调用,因为我已经将NSLog放在他们的内容中以便安心。

我已经找到了我认为可能是解决方案,但我无法让它发挥作用!

viewWillAppear, viewDidAppear not being called, not firing

我将在下面发布我的代码和故事板的屏幕截图,因为我确信这是我设置控制器的不良方式导致了这个错误。任何帮助都会非常感激,因为我现在处于崩溃阶段:D

-(void)viewWillAppear:(BOOL)animated {

//[super viewWillAppear:animated];

//[self.tabBarController viewWillAppear:animated];

[self.tableView reloadData];
NSLog(@"i just ran viewwillAppear");

}


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

athleteObject *athObj3 = [athletes objectAtIndex:indexPath.row];

athleteIdDelete = athObj3.athId;

[self openDatabase];

[self deleteAthleteFromDataBase];

[athletes removeObjectAtIndex:indexPath.row];

[tableView reloadData];

}

reloadData在我的commitEditing函数中工作(当我通过滑动删除条目时,这会更新tableview)

任何帮助将不胜感激,il发布在下面的屏幕截图。

(无法弄清楚如何加载屏幕截图)

2 个答案:

答案 0 :(得分:5)

看起来运动员(我假设的NSMutableArray)没有在viewWillAppear中更新。您是否尝试在调用reloadData之前运行从数据库填充数组的选择器?

希望有所帮助!

答案 1 :(得分:0)

我假设您根据从数据库返回的对象数量来设置代码中的行数/节数。

在此方法中设置断点,并在每次编译器中断时获取计数。您可能没有从数据库中获取任何对象,因此编译器永远不会运行其余的表视图dataSource方法。

相关问题