【发布时间】:2021-06-22 13:51:50
【问题描述】:
我有一个UITableView。当我单击一行时,它将推送一个详细视图控制器以显示详细信息。
而且,如果用户单击详细视图控制器上的“完成”按钮,我需要弹出此控制器并删除 tableview 控制器上的行。
我尝试在详细视图的viewWillDisappear 上编写代码:
if let vc = navigationController?.viewControllers[0] as? TodoViewController{
vc.removeTodo(at:todoListIndex)
}
代码工作正常,但只是一个警告:
UITableView被告知布局其可见单元格和其他内容,而不是在视图层次结构中(表视图或其父视图之一尚未添加到窗口中)。这可能会在没有准确信息的情况下强制表视图内的视图加载和执行布局(例如,表视图边界、特征集合、布局边距、安全区域插入等),从而导致错误,并且还会由于额外的布局传递而导致不必要的性能开销.
那么,删除行的正确方法是什么?
【问题讨论】: