Note:
有关IOS 4.3版的解决方案,请参阅已接受的答案(不是投票最多的答案).
这question是关于在iPad键盘上发现的一种行为,如果在与导航控制器的模式对话框中显示,它拒绝被忽略.
基本上,如果我向导航控制器展示以下内容:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
键盘拒绝被解雇.如果我注释掉这行,键盘可以正常离开.
...
我有两个文本字段,用户名和密码;用户名有一个"下一步"按钮,密码有一个"完成"按钮.如果我在模态导航控制器中演示,键盘不会消失.
WORKS个个
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
DOES NOT WORK
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];