如果我在UIViewController中有一个复杂的视图层次结构,那么何时将主视图分解为它自己的类是适当的,即使它在其他地方不可重用?如果我这样做,对于该视图上的按钮,正确的事件处理方法是什么 - 通过视图类将addTarget直接添加到按钮属性或委托?
我和同事讨论是否应该总是创建一个单独的视图类。
(为了讨论的目的,我们假设我们要不惜一切代价避免使用NIB文件。)
答案 0 :(得分:0)
您可以为一个视图控制器创建单独的视图。如果要根据特定条件加载特定视图,则可以使用一个自定义init方法将视图加载到视图控制器中
- (id)initWithView:(UIview *)view {
self = [super init];
if(self) {
[self setView:view];
}
return self;
}
如果视图中有不同的按钮,则可以在该视图中编写按钮操作方法。要将这些操作发送到viewcontroller,您可以在视图中编写协议,并设置viewcontroller实例以在视图控制器中委派和实现这些协议方法。为了区分操作,您可以为每个按钮设置标签,并根据这些标签在视图控制器中执行适当的操作。
答案 1 :(得分:0)
MVC应该始终保持控制器小而干净。我要求我的团队始终在逻辑上将复杂视图分成小视图。
至于添加控制,总是尝试更简单的方法。必要时使用委托。