从 UITableView 导航到另一个 ViewController 然后返回到 TableViewController 会导致一些元素消失
Posted
技术标签:
【中文标题】从 UITableView 导航到另一个 ViewController 然后返回到 TableViewController 会导致一些元素消失【英文标题】:Navigating from UITableView to another ViewController and then going back to the TableViewController causes some elements to disappear 【发布时间】:2017-08-29 09:32:31 【问题描述】:我的笔记应用出现了一个奇怪的问题。
我有一个ViewController
,它是一个UITableView
委托和数据源(我不使用UITableViewController
)
表格视图是笔记列表。单击一个将打开所选笔记的编辑器视图控制器。
当我单击一个单元格,然后单击“返回”按钮返回表格视图时,表格视图 UI 的某些元素似乎丢失了。
这是表格视图的前后截图:
我正在使用 Realm 移动数据库来存储笔记的数据。
当我调试时,我看到数据实际上填充在单元格中,它只是没有出现在屏幕上。
我尝试删除该应用并重新安装它
我尝试删除故事板并从头开始重建所有内容
我检查了cellForRowAt indexPath
并确保正在填充数据。
更新 - cellForRowAt indexPath:
的代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: NoteListCell.identifier, for: indexPath) as! NoteListCell
let object = results[indexPath.row]
cell.configureCellWith(note: object)
return cell
我什至尝试为消失的标签添加背景颜色,以查看它们是否仍然存在,或者只是缺少文本(不是文本,整个标签都消失了)。
我的代码中没有任何特殊的东西来处理 tableview 数据或在视图控制器之间导航。我的 viewWillAppear
和 viewWillDisappear
两个 VC 方法都没有导致这种情况(我厌倦了从这些方法中删除所有内容,但问题仍然存在)
有人知道我还能检查什么吗?
【问题讨论】:
显示您的cellForRowAt indexPath
代码
检查你的 didselectrow 方法。可能是您在选择时更改颜色,或者您提供的选择样式正在更改选择单元格时的颜色。
@Venkat 我用代码更新了我的问题,但我怀疑它与 tableview 方法有关,因为问题发生在导航回 tableview 视图控制器之后,这些方法甚至没有调用。
@KrishnaDattShukla 我检查了,我没有任何类似的东西,我在didSelectRowAt
方法中所做的只是将 segue 转到下一个视图控制器
@Gil 显示您的configureCellWith note:
代码
【参考方案1】:
所以我仍然不知道为什么会这样,但我安装了 Xcode 9 beta 并从那里运行项目(我之前使用的是 8.3.3)并且问题消失了。 重新安装 8.3.3 也可能解决此问题。
【讨论】:
以上是关于从 UITableView 导航到另一个 ViewController 然后返回到 TableViewController 会导致一些元素消失的主要内容,如果未能解决你的问题,请参考以下文章
导航到另一个 ViewController 时 UITableView 行有问题
将核心数据对象从 DetailViewController 传递到另一个 View Controller