gpt4 book ai didi

ios - 委托(delegate)成为噩梦的多层 subview Controller ——它们应该如何相互通信?

转载 作者:可可西里 更新时间:2023-11-01 04:02:39 24 4
gpt4 key购买 nike

这对我来说是个严重的问题。在代码库上工作,多层 subview Controller 大约有 4-5 层深 - 这是一款平板电脑应用程序, View Controller 之间的解耦程度非常高。第 5 层 subview Controller 想要向顶层 View Controller 发送消息以显示模态。第 4 层和第 3 层也有不同的消息,所以基本上现在我有 4 个协议(protocol),从嵌套在内部深处的 subview Controller 向祖先 View Controller 发送消息变得非常复杂。有更简单的方法吗?

我们考虑过使用 NSNotification 但并不是特别喜欢它,因为它很难调试,而且订阅不是我们控制范围内的明确依赖项。我们也考虑过使用单例,但静态和单例是邪恶的(对吧?)并且会导致状态和并发问题。

感谢任何帮助。我也意识到我意识到这是一个基于设计的稍微开放式的问题,但它有一个非常具体的用例(就像上面描述的那样)。

最佳答案

这是一个有趣的问题,但我想我们需要一些提示,比如一个方案。
首先想到的是为什么你需要添加嵌套子?您不能使用一个简单的堆栈和一个容器 VC 来管理吗?您管理 VC 的方式似乎不正确。如果他们需要通知有关模型的更改,应该只有可见的才能捕获它们,在其他人的 viewWill/Did/appear 中,您可以再次询问新数据。如果你需要通知每个 VC 关于他们的状态,我认为你应该修改你的层次结构。
我想象一个带有堆栈或一组 VC 和可见 VC 属性的容器 VC。该容器将管理信息交换。正如rdelmar所说,这似乎是一个非常高的耦合度。您应该重新考虑仅在容器和可见 VC 之间看到通信的方式,其他人可以在它们出现时刷新它们的数据。

关于ios - 委托(delegate)成为噩梦的多层 subview Controller ——它们应该如何相互通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955842/

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