gpt4 book ai didi

ios - 使用第一响应者而不是将方法链接到 Controller 层次结构中是否是好的应用程序设计?

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

这个问题是针对 OSX 应用程序的,但同样的原则也适用于 iOS。

我在 Storyboard上有一个 NSWindowController,具有以下设置。

A. MainWindowController 有 subview :

1) 带有按钮的工具栏

2) 一个有自己内容的SubVcA viewController

B. SubVcA 的内容是 SubVcB viewController 的 View

C. SubVcB 有一个函数 ButtonPressed

enter image description here

目标是通过单击工具栏按钮触发 SubVcB viewController 中的按钮按下功能。

我一直这样做的方式是从 mainWindowController 到目标 viewController 有一个方法实现链,如下所示:

MainWindowController call method on SubVcA
-->SubVcA call method on SubVcB
---> SubVcB call method buttonPressed

这可行,但当 Controller 堆栈达到大约 4 层深时,它会变得困惑。它也变得更加困惑,当 SubVC(B) 必须将数据发送回 MainWindowController 时,因为为了进行封装(因为不让 SubVC(B) 有太多关于其调用 viewControllers 的信息),我必须在链中实现委托(delegate)方法。当您有多个工具栏按钮时,它会变得更加困惑。

现在...我刚刚开始摆弄 Storyboard 上的 firstResponder 项目

enter image description here

我意识到它会弹出一个巨大的列表,其中列出了在整个应用程序中使用 -(IBAction) 实现的所有方法。

所以我现在的问题是:为了减少 View 层次结构上下的方法困惑,使用 Storyboard上的 firstResponder 对象简单地将 MainWindowController 的工具栏按钮操作直接连接到 SubVc(B) viewController 中的 buttonPressed 方法是否是好的应用程序设计?

此外,还有其他设计模式可以减少困惑吗?

最佳答案

使用第一响应者允许无针对性的操作向上渗透响应者链,到达任何可以处理它的人,这正是第一响应者的目的。这显然比亲自传递信息要简单得多。

关于ios - 使用第一响应者而不是将方法链接到 Controller 层次结构中是否是好的应用程序设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844009/

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