Примечание:
См. принятый ответ (не самый высокий голос) для решения с iOS 4.3.
Этот вопрос относится к поведению, обнаруженному на клавиатуре iPad, где он отказывается отклоняться, если он показан в модальном диалоге с навигационным контроллером.
В принципе, если я представляю контроллер навигации следующей строкой, как показано ниже:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
Клавиатура отказывается от увольнения. Если я прокомментирую эту строку, клавиатура уйдет отлично.
...
У меня есть два текстовых поля, имя пользователя и пароль; У пользователя есть кнопка "Далее", а пароль имеет кнопку "Готово". Клавиатура не исчезнет, если я покажу ее в модульном навигационном контроллере.
WORKS
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
НЕ РАБОТАЕТ
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
Если я удалю часть контроллера навигации и представим "b" как контроллер модального представления, он будет работать. Проблема с навигационным контроллером?
WORKS
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
WORKS
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];