笔记:
从 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];