我有一个从2个不同的地方调用的视图控制器。
1)我从根控制器调用它。它显示并填充。添加按钮完美运行。我打开一个模态表单,获取信息并通过它的委托将其返回给视图控制器。
- (void)itemsAddViewController:(AddItemView *)itemsAddViewController didAddItem
(OrdersDetails *)orderDetail;
{
if (orderDetail) {
[orderDetailItems addObject:orderDetail];
}
[self fetchOrderDetails];
[lineItemsTableView reloadData];
[self dismissModalViewControllerAnimated:YES];
}
但是,当我从另一个视图(在拆分视图的右侧)调用它时,相同的代码不会重新加载表。它添加了数据 - 如果我离开表单并返回,数据就在那里,但是tableview没有被刷新。当我单步执行代码时,它会获得该行,但是就像它没有看到它一样。但
答案 0 :(得分:1)
当在包含-itemsAddViewController:didAddItem:
的视图控制器上显示模态视图控制器时,底层控制器的视图不可见,因此如果控制器收到内存警告,则会卸载它。
因此,当您致电lineItemsTableView
时,您的观看次数可能无法加载,nil
出口可能为-itemsAddViewController:didAddItem:
。您对reloadData
的调用需要移至-viewWillAppear:
,以避免假设您的控制器视图在不可见时具有持久状态。