gpt4 book ai didi

ios - 展开segue,需要刷新tableview

转载 作者:行者123 更新时间:2023-11-29 00:16:28 26 4
gpt4 key购买 nike

我找遍了这个问题,我找不到答案。

所以在我的应用程序的第一页上,我在导航 Controller 中有一个页面。该页面内有一个表格 View 。在表格的单元格内,有一个按钮。对于单元格的 View Controller ,如果用户未登录,我会说从 super View 中删除按钮。因此当您第一次加载应用程序时,没有按钮。

现在,如果您单击登录按钮(页面顶部的按钮),它会转到该页面,然后可能会发生两种情况。起初我正在做的是让一个 segue 回到主页。一切都很好。该按钮出现在单元格中。

但我不喜欢将主页的第二个副本添加到导航 Controller 堆栈的方式。所以我现在探索的是 popnavigationcontroller 方法和 unwind segue。所以它们都可以工作,但问题是当它返回到新页面时,我之前提到的按钮没有出现在单元格中,即使它应该在用户登录后出现。这是因为方法“dequeueReusuableCell”正在使用旧的单元格,我已经在其中删除了按钮。现在按钮已被删除,我没有简单的方法可以将它重新添加到 View 中的正确位置。

那么这里最好的解决方案是什么?起初我正在寻找一种方法来“清除”tableView 的所有可重用单元格,但我不确定我是否找到了答案。我想做的是当我倒回到那个导航 Controller 时,刷新所有内容,就像第一次看到它一样。

我想我可以做的另一个解决方案是执行从登录页面到主页的正常 segue,然后删除以前多余的主导航 Controller 。有更好的解决方案吗?

最佳答案

当您的 Controller 从堆栈弹出时,底层 View Controller 将调用其 viewDidAppear(animated:) 函数。所以你可以:

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
tableView.reloadData()
}

根据您的帖子,这是假设问题与重新加载您的表格有关。如果您重新加载表格并且您的单元格仍未正确更新,则您的 dataSource 没有正确配置单元格存在问题。但如果没有任何代码,我无法判断是否是这种情况。

编辑:这是一个单元重用问题。在某些情况下,单元格配置有一些代码可以删除 subview ,但如果 subview 应该存在,则永远不要将其添加回去。最简单的解决方法是使用 isHidden 而不是完全删除 subview 。

关于ios - 展开segue,需要刷新tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com