2011-08-30 47 views
1

这更多的是iPhone编码中一般良好实践的问题。使用视图控制器作为代理编写新的代理对象

我有一个UISegmentedControls的滚动视图,提交按钮,UIActionSheets,缩放和关闭按钮,暂时显示。

我应该只是堆积所有的方法调用(UIControls的目标行动)(这不是真正的正式委托方法)和缩放UIScrollViews的委托方法到这个视图控制器吗?或者最好是练习创建一个新的[委托]对象来处理这些功能。

回答

1

我认为,所有这一切的最佳位置是视图控制器。我的想法是,根据MVC模型,管理UIControl的动作或一些缩放既不是数据(M)的工作,也不是一些显示(V),因此只有一个地方 - 控制器(C)。

当然,如果一些UIControl事件导致数据管理,你应该(在思想上)在模型中做,但模型方法应该从控制器调用。我认为这不是直接连接view<->model的最佳方式。

+0

你可以给一些新的子类,而不是使用视图控制器的代表的例子吗?我可能在概念上完全错误 - 委托方法被SUPPOSED在视图控制器中实现。 (因为代表是控制器(C)) – Louis

+0

@bierko不,我不能。我认为这是一个坏主意。从技术上讲,非控制器对象可以是代表(例如,您可以在模型类中实现协议,然后将对象添加到您的xib并将其作为委托 - 但它会刹住MVC的想法,我认为)。而关于控制器在控制器 - 我可以想象只有一个案例,它可以是有用的,如果你有大量的行动(只是将它们分组)。但我认为在iPhone开发中这种情况更具理论性。 – kpower

0

这取决于你需要什么。 委托的想法鼓励人们创建一个新的类来处理更多。但在大多数情况下,在视图控制器中实现委托方法很方便。例如,您可能想在委托方法中使用实例变量。

相关问题