gpt4 book ai didi

iphone - 用于在具有多个输入 View 的 iOS 中创建 "wizard"表单 View 的对象结构

转载 作者:行者123 更新时间:2023-11-29 11:13:31 24 4
gpt4 key购买 nike

我想将单个 WizardViewController 与不同的 inputView subview 一起使用。 WizardViewController 将共享一个 searchCriteria 并将其传递给每个新步骤,每个步骤都会根据特定 inputView 的输入添加到条件中>.

我面临的问题是如何构建我的对象/ View ,以便我可以重用 WizardViewController 接受不同类型的输入/控件。例如,我想过使用一个 WizardViewModel,它有像 enum wizardViewModelType 这样的成员(对于每种类型的 View ),UIView *inputView对应于每种类型的 WizardViewModelType,并创建自定义 UIView 子类,对应于可能需要的不同可能的 inputView,根据需要连接 socket 在界面生成器中。问题是,我相信沿着这条路走下去会导致很多类间依赖,并且基本上会破坏将 inputView 逻辑与 WizardViewController 分离的目的。此外,一些 inputView 将要求我从 Web 服务中获取可能的值,这是 ViewModel 必须处理的事情,进一步打破了逻辑。也许我需要为每种类型的输入 View 单独的 ViewController ?还是我以完全错误的方式思考这个问题?

最佳答案

通常,正确的方法是为每个 UIView 设置一个 ViewController。你的应用程序的逻辑不应该在 View 上,而是在 viewController 上,你可以通过使用 segues 共享数据(如果在 ios 5 上),我确信 ios 4 或更低版本还有其他方法。

如果我想在 UIViewController 之间共享代码,我制作向导的方法是将它嵌入导航 Controller 并将下一个 viewController 推送到导航 Controller 堆栈。

如果你想在 View Controller 之间共享代码,我认为你不应该在 View Controller 类上这样做。基本上,我会想到两种选择:

1) 编写一个基类:基类应该扩展 UIViewController,而您的 UIViewController 可以扩展这个基类。

2) 将通用代码提取到另一个类中(更好,如果适用):您创建另一个共享通用代码的类,并将其注入(inject)到您的 View Controller 中。

关于iphone - 用于在具有多个输入 View 的 iOS 中创建 "wizard"表单 View 的对象结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474516/

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