【发布时间】:2026-01-20 17:30:01
【问题描述】:
好的,我遇到了一个奇怪的问题,这导致我提出问题 - 在 viewDidAppear 之后是否有任何代码运行?
这里有更多信息。我有一个带有自定义单元格的 tableViewController (TVC)。其中一个单元有一个按钮作为附件。加载此 TVC 时,会设置按钮的 backgroundColor。使用按钮选择单元格会显示一个带有颜色选择器 (CPVC) 的视图控制器。当 CPVC 被关闭时,它首先运行 onDismissal 块(在 TVC 中设置)用于调整 TVC 中按钮的颜色。到目前为止,代码运行良好,并且在关闭颜色选择器视图控制器时设置了按钮的颜色。
我发现的问题是在按钮的颜色设置后,由于某种原因,它会在 ~0.25 秒后重置为以前的颜色。您可以看到在颜色选择器集中选择的颜色,然后按钮的颜色会转换为之前的颜色。我不明白为什么会这样。当我在调试器中检查局部颜色变量时,它们都被更新为新颜色,并且不确定对先前颜色的引用仍然存在于何处。我已经将NSLog 语句插入到TVC 的viewDidAppear 方法中,并验证了在颜色选择器关闭后,按钮的颜色设置为用户在viewDidAppear 方法结束时选择的任何颜色。只是之后颜色会发生变化。在viewDidAppear 之后运行的是什么?
【问题讨论】:
-
使用更新单元格中按钮颜色的代码更新您的问题。还包括您的
cellForRowAtIndexPath。另请注意,默认情况下,UITableViewController在其viewDidAppear中取消选择当前选定的行。所以也许取消选择正在重置颜色。
标签: ios uiviewcontroller viewdidappear