ios - добавить цель к кнопке в другом контроллере представления - PullRequest
2 голосов
/ 20 октября 2011

Почему это не работает?Я хочу, чтобы closeBtn в новом контроллере представления вызывал метод dismiss: в текущем контроллере представления.

NewViewController *newVC = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]];

[newVC.closeBtn addTarget:self action:@selector(dismiss:) forControlEvents:UIControlEventTouchUpInside];

Метод dismiss: никогда не вызывается в текущем контроллере представления.closeBtn правильно настроен как свойство в NewViewController и связан с файлом .xib.

Ответы [ 2 ]

3 голосов
/ 11 июня 2013

Создайте объект другого контроллера и укажите его в addTarget. Введите имя метода в параметре действия. т. е. другой контроллер * obj; [кнопка addTarget: obj action: @selector (MethodName) forControlEvents: UIControlEventTouchDown];

0 голосов
/ 20 октября 2011

Как правило, это не очень хороший способ иметь дело с методами и элементами пользовательского интерфейса.

Тем не менее, вы можете сделать что-то вроде этого, хотя это и уродливо.

[yourButton addTarget:self action:@selector(yourButtonPressed:) forControlEvent:UITouchUpInside];

    - (void) yourButtonPressed:(id)sender {
    OtherVC* otherVC = [OtherVC alloc] initWithNibName@"NewViewController"] ...
    [otherVC theDesiredMethod];
   [otherVC release];
}

Это работает, но не очень хорошо, вы, вероятно, лучшеперемещая функцию в соответствующий VC.

Надеюсь, это поможет.

...