【发布时间】:2011-09-17 22:11:37
【问题描述】:
我有一个从 2 个不同的地方调用的视图控制器。
1) 我从根控制器调用它。它被显示并填充。添加按钮完美运行。我打开一个模态表单,获取信息并通过它的委托将其返回给视图控制器。
- (void)itemsAddViewController:(AddItemView *)itemsAddViewController didAddItem
(OrdersDetails *)orderDetail;
{
if (orderDetail) {
[orderDetailItems addObject:orderDetail];
}
[self fetchOrderDetails];
[lineItemsTableView reloadData];
[self dismissModalViewControllerAnimated:YES];
}
但是,当我从另一个视图(在拆分视图的右侧)调用它时,相同的代码不会重新加载表。它添加了数据——如果我离开表单并回来,数据就在那里,但表格视图没有被刷新。当我单步执行代码时,它得到了这条线,然后像看不到它一样越过它。
【问题讨论】:
-
在一种情况下听起来像
lineItemsTableView是nil但您没有显示足够的代码来确定。您展示此控制器的两种情况有什么不同? -
我不认为 lineItemsTableView 是 nil - 它显示现有行,而不是新行。既然您提到了它,它第二次被弹出到模态表单中。那会有什么不同吗?没有那个我也能做到,但我必须重新考虑一些程序流程。
-
将视图控制器呈现为模式应该没有什么区别,但如果你创建它的方式不同,那么这可能很重要。我不怀疑您的表存在(最终),但怀疑
lineItemsTableView属性在您调用itemsAddViewCOntroller:didAddItem:时可能不会指向它。视图是否在此时加载?您知道lineItemsTableView已正确设置吗?同样,如果没有看到更完整的示例,就不可能知道问题出在哪里。 -
你需要看什么代码?我可以再发一些,我只是不知道什么是相关的。 . .
-
我认为你在哪里构建你的视图控制器和表格视图是相关的。还要调试
itemsAddViewController:didAddItem:并确认lineItemsTableView是否为零,这样我就不会浪费您的时间来猜测问题可能是什么。我敢打赌,当您致电itemsAddViewController:didAddItem:时,您的表格视图不可见,并且有时已被卸载(取决于您的应用是否收到内存警告)。
标签: xcode ipad uitableview xcode4 reloaddata