Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带有moreNavigationController的错误消息_Ios_Swift_Uitableview_Uinavigationcontroller_Tablecell - Fatal编程技术网

Ios 带有moreNavigationController的错误消息

Ios 带有moreNavigationController的错误消息,ios,swift,uitableview,uinavigationcontroller,tablecell,Ios,Swift,Uitableview,Uinavigationcontroller,Tablecell,我决定在moreNavigationController中自定义tableView,我对它进行了测试,效果很好,没有问题,但为什么会出现错误: 2020-05-31 17:16:23.395903-0600代码注释[1472:329155][TableView]仅警告一次:UITableView被告知布局其可见单元格和其他内容,而不在视图层次结构中。尚未将表视图或其超视图之一添加到窗口中。这可能会导致错误,因为强制表视图内的视图加载和执行布局时没有准确的信息,例如表视图边界、特征集合、布局边距、

我决定在moreNavigationController中自定义tableView,我对它进行了测试,效果很好,没有问题,但为什么会出现错误:

2020-05-31 17:16:23.395903-0600代码注释[1472:329155][TableView]仅警告一次:UITableView被告知布局其可见单元格和其他内容,而不在视图层次结构中。尚未将表视图或其超视图之一添加到窗口中。这可能会导致错误,因为强制表视图内的视图加载和执行布局时没有准确的信息,例如表视图边界、特征集合、布局边距、安全区域插入等,并且还会由于额外的布局过程而导致不必要的性能开销。在UITableViewAlertForLayoutOutsideViewHierarchy上创建一个符号断点,以在调试器中捕获此断点,并查看导致此情况发生的原因,因此,如果可能,您可以完全避免此操作,或者将其推迟到将表视图添加到窗口中。表视图:

我不知道怎么解决,怎么解决? 这是我的密码:

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

在您这样说的时候,您正在强制表视图控制器过早地获取其视图。然后,当视图尚未进入界面时,您正在修改该视图,它是一个表视图。这会导致运行时抱怨

如果在moretableview.visibleCells{cell.backgroundColor=UIColor.clear}中没有for单元格,则不会出现错误。那么…这意味着我不能使用这个代码?如何清除表格单元格背景,因为当我看到红色背景时,单元格显示为黑色或白色通过数据源和委托方法确定表格视图如何显示其单元格。想一想,如果这是您的表视图,您会怎么做。在本节末尾,我演示了一种方法:甚至我也尝试了func tableView_utableview:UITableView,cellForRowAt indexath:indexPath->UITableViewCell{let cell=UITableViewCell.backgroundColor=UIColor.red return cell},但没有成功