El keyboard de la hoja de formulario iOS no desaparece

Sé que tengo que llamar

- (BOOL)disablesAutomaticKeyboardDismissal { return NO; } //this dismiss keyboard on ios - (BOOL) textViewShouldBeginEditing:(UITextView *)textView { [self.comments resignFirstResponder]; return YES; } 

Para descartar el keyboard en una hoja de formulario, también sé que tengo que llamar a disablesAutomaticKeyboardDismissal en el controller de navigation si tengo uno.

El problema es: creo hoja de formularios con el controller de navigation programáticamente como:

 UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]]; SettingsViewController *settingsVC = [sb instantiateViewControllerWithIdentifier:@"settingsViewController"]; //add navigation controller UINavigationController *modalViewNavController= [[UINavigationController alloc] initWithRootViewController:settingsVC]; modalViewNavController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; modalViewNavController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController:modalViewNavController animated:YES]; 

Entonces, no tengo una class de controller de navigation para la hoja de formulario, ¿cómo puedo rechazar el keyboard en este caso?

¿Debo crear un controller de vista de navigation?

ACTUALIZAR::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::

Termine creando un controller de navigation en el guión gráfico y llame a disablesAutomaticKeyboardDismissal en el controller de vista del controller de navigation, que resolvió el problema, pero me pregunto cómo hacerlo sin crear una class de controller de navigation.

Cualquier input es bienvenida …

¿Puedes probar el siguiente código?

 - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; gestureRecognizer.cancelsTouchesInView = NO; [self.view addGestureRecognizer:gestureRecognizer]; } - (void)hideKeyboard { [self.view endEditing:YES]; } 

A continuación el código funcionó para mí:

 @interface UINavigationController (dismissKeyBoard) @end @implementation UINavigationController (dismissKeyBoard) - (BOOL)disablesAutomaticKeyboardDismissal { return NO; } @end