popViewControllerAnimated后的UITableViewController没有重绘新的单元格文本标签
-
25-09-2019 - |
题
我有一个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