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