2

I have this view in the storyboard: view consist of fixed controls and controls that changes according to the type of controller

as you can see there are some fixed controls, and others that change according to the type of screen. What do you think is better?

1- Same view controller for multiple screens. (more code to control views)

2- Add all controls in the same screen, then hiding and showing them by code? (messy code)

3- View controller for each screen. (replicated code)

4

2 回答 2

3

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

将数据源放在一边,而不是直接放在 上UIViewController,可以为您的代码提供更大的灵活性。如果您需要使用新的UIViewController,没有任何改变,他仍然可以从同一点请求资源。所以记住这一点。


编辑 1

数据源也在视图控制器内部,屏幕之间没有交互,是同一个屏幕,但是一些控件根据它的类型而变化,你觉得我现在该怎么办?

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

UIViewController <=> Singleton <=> Data Source

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

我建议 aUIViewController作为其他人的容器UIViewControllers。对我来说,边走边写屏幕比在一个地方做所有事情更有意义。

于 2012-11-14T07:36:19.713 回答
0

我肯定不会选择 3。这种方法最灵活!它很干净 => 好维护

于 2012-11-14T08:01:37.297 回答