【发布时间】:2013-04-16 16:24:56
【问题描述】:
我有一个 Xcode 应用程序,它创建一个 tableview,然后用来自 sqlite 数据库的数据填充它,这完美地工作并允许我将数据推送到新视图并删除等,
这个表格视图是标签栏控制器上加载的第一个视图。当我移动到同一个控制器上的另一个视图时出现问题,即创建一个运动员,在这个视图中我可以将一个新的运动员添加到数据库中(工作正常)但是当我回到标签栏控制器上的 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 函数中工作(当我通过滑动删除条目时会更新表格视图)
任何帮助将不胜感激,我在下面发布屏幕截图。
(如果可能的话,不知道如何加载屏幕截图)
【问题讨论】:
标签: xcode uitableview reloaddata viewwillappear