我有一个problemetic的的UITableViewController 失败子视图被除去后重新绘制更新的细胞。

下面是发生了什么。在子视图改变数据后,父视图控制器重新加载所述源数据阵列和运行的 [的tableView reloadData] 经由PostNotification。这个触发器后,我使用 popViewControllerAnimated 以返回到父的UITableViewController(此弹出子视图从堆栈,并显示控制器的一个电平上)。

然而,我更新的数据不显示在父视图控制器!根据调试器,电池的标签已经更新,但可视标签不会改变。然而,如果我滚动轻弹该表中,瞬间移动更新的细胞拿出来看,当它重新显示标签被更新!

我也尝试调用的 [的tableView reloadData] 通过的 viewWillAppear中,但问题仍然存在。

下面是一些附加信息,其可以是有益的。我有构成这样的3次:

1/  SettingsViewController : UITableViewController
2/  -- UserView : UITableViewController
3/  ---- UserDetailsView : UIViewController <UIActionSheetDelegate>

我打电话从内部用户视图UserDetailsView如下:

 UserDetailsView *userDetailsView = [[UserDetailsView alloc] init];
 [self.navigationController pushViewController:userDetailsView animated:YES];

如果我返回到最顶端的控制器(SettingsViewController),然后装入有问题的控制器(用户视图),一切都正确绘制。从发生此问题的子视图返回时只有

感谢您提前为您的建议。

有帮助吗?

解决方案

最后工作这一个后约配对编码

的一小时

过了一会儿,我们注意到,的tableView总是空每当我们发出的reloadData消息。 正如你可能在目标C知道,空对象接受任何消息,而无需投诉。

事实证明,“一个人”(啊哈,对不起是我)已经定义在头文件这一行。

 UITableView *tableView;

现在你聪明的饼干在那里会知道,因为我们扩展UITaleViewController,我们并不需要做一个指针的tableView自己。实际上我已经取代继承的tableView构件用一个空对象。

推理解决。希望这可以帮助其他人在那里呢! :d

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top