控制多个视图的最佳做法是什么?

时间:2012-11-14 07:30:02

标签: ios uiviewcontroller storyboard

我在故事板中有这个观点: view consist of fixed controls and controls that changes according to the type of controller

正如您所看到的那样,有一些固定的控件,以及其他根据屏幕类型而变化的控件。 你觉得哪个更好?

1-多个屏幕的相同视图控制器。 (更多代码来控制视图)

2-在同一个屏幕中添加所有控件,然后隐藏并按代码显示它们? (凌乱的代码)

3-查看每个屏幕的控制器。 (复制代码)

2 个答案:

答案 0 :(得分:3)

不要使用“窗口”这个词,这可能会导致对您要说的内容有不同的解释。使用“屏幕”或“屏幕部分”一词。在这种情况下,我会使用UIViewControllers的容器。要在那时进行通信,请使用KVONSNotificationCenter(很可能是第二个)。另外,请确保没有直接在UIViewController上的数据源(如数组或字典)。将数据源保留在其他位置,其中所有UIViewController(或任何类)都可以轻松访问。你可以选择单身人士。

放弃数据源,而不是直接放在UIViewController上,可以让您更灵活地使用代码。如果您需要使用新的UIViewController,则不会更改任何内容,他仍然可以从同一点请求资源。所以记住这一点。


修改1

  

数据源也在视图控制器内部,没有   屏幕之间的交互,它是相同的屏幕,但一些控件   根据它的类型改变,你认为我必须做什么   现在?

这种方法的问题在于,如果由于某种原因需要添加新的UIViewController,也使用相同的数据源,那么您现在做什么?我总是试图尽可能地从数据源中解耦UIViewController。否则,如果应用程序发生变化(客户需求发生变化),您将来可能会遇到问题。再次,将数据源移动到适当的类,并使用Singleton访问它。

UIViewController <=> Singleton <=> Data Source
  

所以现在你建议用多个屏幕制作多个视图控制器?

我建议UIViewController作为其他人UIViewControllers的容器。对我而言,在我去的时候构建屏幕比在一个地方做所有事情更有意义。

答案 1 :(得分:0)

我肯定会选择没有3.这种方法最灵活!它很干净=&gt;善于维护