ios - moreNavigationController 的错误消息
问题描述
我已决定在 moreNavigationController 中自定义 tableView,我对其进行了测试,效果很好,没有问题,但为什么会出现错误:
2020-05-31 17:16:23.395903-0600 代码注释[1472:329155] [TableView] 仅警告一次:UITableView 被告知在不位于视图层次结构中的情况下布局其可见单元格和其他内容(表格视图或其中之一它的超级视图尚未添加到窗口中)。这可能会通过强制表视图中的视图在没有准确信息的情况下加载和执行布局(例如表视图边界、特征集合、布局边距、安全区域插入等)而导致错误,并且还会由于额外的布局传递而导致不必要的性能开销. 在 UITableViewAlertForLayoutOutsideViewHierarchy 处创建一个符号断点,以便在调试器中捕获它并查看导致这种情况发生的原因,因此如果可能的话,您可以完全避免此操作,或者将其推迟到表格视图添加到窗口中。表视图:<_UIMoreListTableView: 0x13a866e00; 帧 = (0 44; 414 852); clipsToBounds = YES; 自动调整大小 = W+H;手势识别器 = ; 层 = ; 内容偏移:{0, 0}; 内容大小:{414, 176};调整内容插入:{0, 0, 0, 0}; 数据来源:>
我不知道我该如何解决它,我该如何解决它?这是我的代码:
if let moretableview = moreNavigationController.topViewController?.view as? UITableView {
moretableview.backgroundColor = UIColor(named: "mainbackground")
for cell in moretableview.visibleCells {
cell.backgroundColor = UIColor.clear
}
}
解决方案
时机就是一切。通过说
moreNavigationController.topViewController?.view
在你说它的时候,你正在强迫表格视图控制器过早地获得它的视图。然后,您正在修改视图,它是一个表格视图,当它还没有进入界面时。这会导致运行时抱怨。
推荐阅读
- java - 当我已经声明变量时如何修复空错误
- python - 尝试使用 bs4 抓取表格的内容
- c# - 抽象类必须重写抽象方法吗?
- android - ChildEventListener 必须实现 onChildChanged
- python - 当第一个元素匹配时如何对嵌套列表进行排序?
- python-3.x - 打开 QComboBox 会触发 mouseMoveEvent 但不会触发 mousePressEvent
- python - lmfit 有没有办法只显示拟合曲线?
- servlets - @WebServlet 在 Netbeans 11.0 中失败并出现 java.lang.RuntimeException: com.example.NewServlet。
(NewServlet.java:1) - python - 轻松创建大量编号 URL
- javascript - let o1.prototype = Object.create(o2.prototype) 和 o1.prototype = o2.prototype 有什么区别?