【问题标题】:self.tableView reloadData not working in viewWillAppearself.tableView reloadData 在 vi​​ewWillAppear 中不起作用
【发布时间】: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


    【解决方案1】:

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

    希望有帮助!

    【讨论】:

    • 为您的帮助干杯!我有一个名为 getDataIntoAthleteArray 的函数,它从 sqlite 数据库中提取数据并将其存储在一个数组中。我所要做的就是在重新加载表中的数据之前调用这个函数。在你提到它之后,这是完全有道理的
    • 很高兴它有帮助。编码愉快!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多