我在故事板中有这个观点:
正如您所看到的那样,有一些固定的控件,以及其他根据屏幕类型而变化的控件。 你觉得哪个更好?
1-多个屏幕的相同视图控制器。 (更多代码来控制视图)
2-在同一个屏幕中添加所有控件,然后隐藏并按代码显示它们? (凌乱的代码)
3-查看每个屏幕的控制器。 (复制代码)
答案 0 :(得分:3)
不要使用“窗口”这个词,这可能会导致对您要说的内容有不同的解释。使用“屏幕”或“屏幕部分”一词。在这种情况下,我会使用UIViewControllers
的容器。要在那时进行通信,请使用KVO
或NSNotificationCenter
(很可能是第二个)。另外,请确保没有直接在UIViewController
上的数据源(如数组或字典)。将数据源保留在其他位置,其中所有UIViewController
(或任何类)都可以轻松访问。你可以选择单身人士。
放弃数据源,而不是直接放在UIViewController
上,可以让您更灵活地使用代码。如果您需要使用新的UIViewController
,则不会更改任何内容,他仍然可以从同一点请求资源。所以记住这一点。
修改1
数据源也在视图控制器内部,没有 屏幕之间的交互,它是相同的屏幕,但一些控件 根据它的类型改变,你认为我必须做什么 现在?
这种方法的问题在于,如果由于某种原因需要添加新的UIViewController
,也使用相同的数据源,那么您现在做什么?我总是试图尽可能地从数据源中解耦UIViewController
。否则,如果应用程序发生变化(客户需求发生变化),您将来可能会遇到问题。再次,将数据源移动到适当的类,并使用Singleton访问它。
UIViewController <=> Singleton <=> Data Source
所以现在你建议用多个屏幕制作多个视图控制器?
我建议UIViewController
作为其他人UIViewControllers
的容器。对我而言,在我去的时候构建屏幕比在一个地方做所有事情更有意义。
答案 1 :(得分:0)
我肯定会选择没有3.这种方法最灵活!它很干净=&gt;善于维护