我目前正在重构我的应用程序以确保它符合MVC。 我想分裂控制器(myController的延伸UIController)和视图(HomeView其延伸的UIView)我设置使用MVC - 视图是否知道控制器?
self.view = [[HomeView alloc] init];
在myController的视图当我推送的UIButton,一种方法是所谓的视图,在这个方法中,我想从控制器调用一个方法。
在我看来
[zenModeBtn addTarget:self action:@selector(touchZenMode:) forControlEvents:UIControlEventTouchDown];
...
- (void) touchZenMode:(id) sender {
[myController playZenMode];
}
但在视图中有到控制器的参考真的是一个不好的做法,是不是?
编辑:
所以在我的UIViewController我做了这一点:
- (id) init {
HomeView* myHomeView = [[HomeView alloc] init];
[myHomeView.arcadeModeBtn addTarget:self action:@selector(touchArcadeMode) forControlEvents:UIControlEventTouchUpInside];
self.view = myHomeView;
return self;
}
是正确的?
谢谢,但按钮也必须绘制,所以我必须把它留在视图中吗? – Max 2013-04-04 02:41:35
你能看看我编辑吗? – Max 2013-04-04 04:04:41
没错。在控制器中创建并配置按钮。请记住,控制器控制视图。 - 但是你的编辑是错误的。在'init'中,你必须调用'[[super alloc] init]'创建'self'。 – Mundi 2013-04-04 07:00:02