我在故事板这样的观点: 控制多个视图的最佳做法是什么?
,你可以看到有一些固定的控制,和其他人,根据屏幕的类型而改变。 你认为哪个更好?
1-用于多个屏幕的相同视图控制器。 (更多代码来控制视图)
2-在同一屏幕中添加所有控件,然后通过代码隐藏和显示它们? (乱码)
3-查看每个屏幕的控制器。 (复制代码)
我在故事板这样的观点: 控制多个视图的最佳做法是什么?
,你可以看到有一些固定的控制,和其他人,根据屏幕的类型而改变。 你认为哪个更好?
1-用于多个屏幕的相同视图控制器。 (更多代码来控制视图)
2-在同一屏幕中添加所有控件,然后通过代码隐藏和显示它们? (乱码)
3-查看每个屏幕的控制器。 (复制代码)
不要使用“窗口”这个词,它可能会导致对你想说的内容的不同解释。使用单词“屏幕”或“屏幕的部分”。在这种情况下,我会使用一个容器UIViewControllers
。要在此之间进行通信,请使用KVO
或NSNotificationCenter
(很可能是第二个)。还要确保没有数据源直接在UIViewController
上(如数组或字典)。将数据源保存在其他地方,所有UIViewController
(或任何类别)都可以轻松访问。你可以去一个单身人士。
将数据源置于远离而不是直接位于UIViewController
的位置,为您提供了更多的代码灵活性。如果你需要使用新的UIViewController
,没有什么改变,他仍然可以从同一点请求资源。所以记住这一点。
编辑1
数据源也是视图控制器里面,有屏幕之间没有 相互作用,它是相同的屏幕,但某些控件根据它的类型 变化,你觉得我现在必须做 ?
用这种方法的问题是,如果你需要,出于某种原因添加新的UIViewController
,也使用相同的数据源,你怎么现在怎么办?我总是尽可能地从数据源中解耦UIViewController
。否则,如果应用程序发生变化(客户需求发生变化),您将来可能会遇到问题。再次,将数据源移动到适当的类,并使用单例访问它。
UIViewController <=> Singleton <=> Data Source
所以,现在你的建议,使多个视图控制器与多屏?
我建议UIViewController
作为其他人的容器UIViewControllers
。对我而言,在我去的时候组合屏幕更有意义,而不是在一个地方做所有事情。
我肯定会去没有3.这种方法是最灵活的!并且它很干净=>保持良好
当前所有视图都具有相同的视图控制器,它们都具有连接到相同视图控制器的插座。 数据源也在视图控制器内部,屏幕之间没有交互,屏幕是相同的,但是一些控件根据其类型而改变,您认为我现在必须做什么? – Mhdali
这是一种可能性,虽然我更喜欢“分而治之”。 – Peres
顺便说一下,数据源不是问题,因为所有屏幕与数据源的交互方式都是一样的,所以现在您建议使用多个屏幕制作多个视图控制器? – Mhdali