1

我想使用WizardViewController具有不同inputView子视图的单个。将WizardViewController共享 asearchCriteria并将其传递给每个新步骤,每个步骤都根据该特定的输入添加到标准中inputView

我面临的问题是如何构造我的对象/视图,以便我可以重用WizardViewController接受不同类型的输入/控件。例如,我考虑过使用具有WizardViewModel类似成员enum wizardViewModelType(对于每种类型的视图),对应UIView *inputView于每种类型的界面生成器。问题是我相信走这条路会导致很多类间的依赖,基本上会破坏将逻辑与. 此外,其中一些将要求我从 Web 服务中获取可能的值,这是WizardViewModelTypeUIViewinputViewinputViewWizardViewControllerinputViewViewModel将不得不处理,进一步打破逻辑。也许我需要ViewController为每种类型的输入视图分开?还是我以完全错误的方式思考这个问题?

4

1 回答 1

2

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

如果我想在 UIViewControllers 之间共享代码,我会做一个向导的方法是将它嵌入到导航控制器中并将下一个 viewController 推送到导航控制器堆栈上。

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

1)编写一个基类:基类应该扩展 UIViewController 并且你的 UIViewControllers 可以扩展这个基类。

2)将公共代码提取到另一个类中(更好,如果适用):您创建另一个共享公共代码的类,并将其注入您的视图控制器。

于 2012-05-08T19:13:27.147 回答