注意:
关于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];