gpt4 book ai didi

ios - 管理 View Controller 以维护状态

转载 作者:行者123 更新时间:2023-11-28 09:50:30 24 4
gpt4 key购买 nike

有关如何在 View Controller 之间导航的基本问题。假设我有 VC“A”和 VC“B”,它们都嵌入在导航 Controller 中。要从 A 到 B,我使用 segue。到达 B 后,我单击一个按钮,它会产生一些视觉变化,例如按钮的颜色。然后我点击 Nav Controller 的后退按钮以放松,然后返回到 A。然后我再次使用 segue 转到 B,我得到一个新的 VC“B”——没有新的按钮颜色。我想这就是 segues 的工作原理。

但我如何才能获得具有新按钮颜色的相同 VC B?

我的技巧是保存 VC B 的一个实例变量(在 VC A 的类中),然后使用 navigationController.pushViewController() 导航到它。测试确认我的按钮颜色变化在 B 的调用之间保持不变。但是这个解决方案感觉笨拙和 hacky。

所以,在我充实这段代码之前,我需要问:是否有一种设计模式可以让 A->B->A->B 而不是第二次获得新的 B?首选方法是什么?

最佳答案

当您推送到 View Controller B 时,将创建 B 的一个实例,这就是您推送到的对象。当你弹回 View Controller A 时, View Controller B 的那个实例被取消初始化,永远消失了。当您推回 View Controller B 时,您创建了一个新实例。因此,要使按钮的颜色保持不变,您需要保留 View Controller B 的状态,以便其所有实例都反射(reflect)该更改。有多种方式来保存状态,您选择的选项将取决于项目和个人喜好。

关于ios - 管理 View Controller 以维护状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49243170/

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