Лучшая практика для уведомлений UIKeyboard - iPhone SDK - PullRequest
8 голосов
/ 18 июля 2010

У меня есть навигационное приложение с тремя уровнями UIViewControllers.В каждом контроллере представления у меня есть UITextField, где я пытаюсь создать подкласс UIKeyboard для каждого.У меня вопрос, где «установить» уведомления и «сбросить» их.

У меня есть уведомления:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

, так что лучше установить их в событии viewDidLoad?Или событие viewWillAppear?

И также для [[NSNotificationCenter defaultCenter] removeObserver:self];

Я не хочу, чтобы во время детализации было вызвано несколько событий keyboardWillShow:.

Многиеспасибо, Бретт

Ответы [ 2 ]

7 голосов
/ 18 июля 2010

Я предлагаю вам поместить их в методы init и dealloc, так как viewWillAppear и viewWillDisappear будут называться каждый раз, когда представление появляется или исчезает , что не нужно для регистрации / отмена регистрации уведомлений.

5 голосов
/ 30 января 2012

Я бы тем не менее предложил вам зарегистрироваться в качестве наблюдателя в viewWillAppear и отменить регистрацию в viewWillDisappear, поскольку viewDidUnload вызывается только тогда, когда память должна быть освобождена, то есть viewDidLoad вызывается гораздо чаще, чем viewDidUnload итогда у вас может возникнуть проблема с получением одного и того же уведомления более одного раза.

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