Создание кнопок пользовательского класса вызывает родительский класс - PullRequest
1 голос
/ 20 февраля 2012

У меня есть UIViewController под названием «MainViewController», который использует собственный класс «CustomController» для управления одним из его подвидов. Пользовательский класс создает UIButton s в коде. Как бы получить эти кнопки для запуска методов в MainViewController?

1 Ответ

3 голосов
/ 20 февраля 2012

Я думаю, что делегирование - это путь туда.

  1. Определите протокол CustomControllerDelegate внутри CustomController.h с помощью такого метода, например:

    - (void) customControllerButtonPressed(id)sender; // BTW: you can use `CustomController` instead of `id` if you make a forward declaration for this class
    
  2. Добавить свойство делегата и синтезировать его в файле .m

    @property (assign) id<CustomControllerDelgate> delegate;
    
  3. Теперь, когда ваша кнопка нажата, вы просто вызываете делегата:

    [self.delegate customControllerButtonPressed:self];
    
  4. В вашем MainViewController вы устанавливаете его в соответствии с указанным протоколом и настраиваете делегата CustomControllers следующим образом:

    CustomViewController *customVC = [[CustomViewController alloc] init];
    customVC.delegate = self;
    
  5. Сейчаспри нажатии кнопки вызывается реализация указанного метода MainViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...