ОК, поэтому скажем, что вы регистрируетесь для уведомлений в методе viewDidLoad
(предположим, вы используете UIViewController
) в классе A; и отмена регистрации для уведомлений в методе viewWillDisappear:
. Затем, пока вы вызываете super
в эквивалентные методы вашего подкласса (класса B), ваш класс получит эти уведомления.
Чтобы ответить на эти уведомления, вы создаете метод, определенный в файле .h файла суперкласса (класс A) под названием didEnterForeground
, и вы устанавливаете его как селектор, который вызывается, когда ваш суперкласс получает уведомление. Все, что вам нужно сделать, это реализовать didEnterForeground
в вашем подклассе (класс B), чтобы отвечать на уведомления.
В качестве примера у меня есть пользовательский класс UIViewController
, который определяет определенные типы поведения, которые я хочу быть универсальными для приложения. Мой суперкласс RHViewController
обнаруживает некоторые касания (например, три пальца удерживаются более 1 секунды) и вызывает селектор performQuickPrint
. Подклассы RHViewController
затем реализуют performQuickPrint
, чтобы ответить пользователю, удерживая 3 пальца.
Чтобы реализовать код только для подклассов RHViewController
, я просто не звоню super
.
Это немного напоминает, если вы переопределяете touchesBegan:withEvent:
и не вызываете [super touchesBegan:touches withEvent:event];
, вы можете потерять много функциональности.
Надеюсь, это поможет.
Вы попробовали? Что происходит? Лучше всего попробовать свой код перед отправкой вопроса. – rmaddy