NSNotificationCenter con respecto a ViewWillAppear y ViewWillDisapper

Tengo un simple viewController que quiero escuchar.UIKeyboardWillHideNotification. Por eso tengo el siguiente código:

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillBeHidden)
                                                 name:UIKeyboardWillHideNotification object:nil];
}

- (void) keyboardWillBeHidden
{
    [self.scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
}

Estoy intentando decidir cuándo quitar el viewController como un observador del centro de notificaciones. Solo necesito saber sobre elUIKeyboardWillHideNotification cuando el controlador de visualización está en pantalla, estoy pensando en agregar lo siguiente:

- (void) viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

¿Es esto suficiente? ¿Hay alguna vez una posibilidad de que?viewDidUnload odealloc ¿Se llamará mientras el viewController todavía esté en pantalla? Tenga en cuenta que estoy usando un muy básicoUINavigationController para el flujo de mi aplicación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta