Я в настоящее время реорганизую свое приложение, чтобы убедиться, что он совместим с MVC. Я хотел бы разделить контроллер (MyController, который проходит UIController) и вид (HomeView, который проходит UIView) Я установить вид в myController с помощьюMVC - вид знает контроллер?
self.view = [[HomeView alloc] init];
Когда я вытолкнуть UIButton, метод вызывается в представлении , и в этом методе я хотел бы вызвать метод из контроллера.
На мой взгляд
[zenModeBtn addTarget:self action:@selector(touchZenMode:) forControlEvents:UIControlEventTouchDown];
...
- (void) touchZenMode:(id) sender {
[myController playZenMode];
}
Но имея ссылку на контроллер в представлении действительно плохая практика, не так ли?
EDIT:
Так что в моем UIViewController я сделал это:
- (id) init {
HomeView* myHomeView = [[HomeView alloc] init];
[myHomeView.arcadeModeBtn addTarget:self action:@selector(touchArcadeMode) forControlEvents:UIControlEventTouchUpInside];
self.view = myHomeView;
return self;
}
правильно?
Спасибо, но кнопка тоже должна быть нарисована, поэтому я должен оставить ее в виде справа? – Max
Можете ли вы посмотреть на меня? – Max
Справа. Создайте и настройте кнопку в контроллере. Помните, что контроллер контролирует представление. - Но ваше редактирование неверно. в 'init' вам нужно вызвать' [[super alloc] init] 'для создания' self'. – Mundi