Tableview reloadData没有被执行 - 有时候

时间:2011-06-18 20:17:24

标签: xcode ipad uitableview xcode4 reloaddata

我有一个从2个不同的地方调用的视图控制器。

1)我从根控制器调用它。它显示并填充。添加按钮完美运行。我打开一个模态表单,获取信息并通过它的委托将其返回给视图控制器。

- (void)itemsAddViewController:(AddItemView *)itemsAddViewController didAddItem
  (OrdersDetails *)orderDetail;
{
    if (orderDetail) {
        [orderDetailItems addObject:orderDetail];
}   
[self fetchOrderDetails];
[lineItemsTableView reloadData];
[self dismissModalViewControllerAnimated:YES];

}

但是,当我从另一个视图(在拆分视图的右侧)调用它时,相同的代码不会重新加载表。它添加了数据 - 如果我离开表单并返回,数据就在那里,但是tableview没有被刷新。当我单步执行代码时,它会获得该行,但是就像它没有看到它一样。但

1 个答案:

答案 0 :(得分:1)

当在包含-itemsAddViewController:didAddItem:的视图控制器上显示模态视图控制器时,底层控制器的视图不可见,因此如果控制器收到内存警告,则会卸载它。

因此,当您致电lineItemsTableView时,您的观看次数可能无法加载,nil出口可能为-itemsAddViewController:didAddItem:。您对reloadData的调用需要移至-viewWillAppear:,以避免假设您的控制器视图在不可见时具有持久状态。