これは見つけるのが大変でした。iOSの貧弱なAPIデザインの1つのようです。@0xcedと@manicaesarの回答に感謝します。
これが、壁に頭をぶつけて立ち往生している将来の開発者のための私の統合された答えです。
シングルビューコントローラの場合は、オーバーライドdisablesAutomaticKeyboardDismissal
してNOを返します。
モーダルのナビゲーションコントローラーの場合は、次のように独自のUINavigationControllerサブクラスを作成します。
.h..で
@interface MyNavigationController:UINavigationController
@終わり
.m...で
@implementation MyNavigationController
#pragmaマーク-
#pragma mark UIViewController
-(BOOL)disablesAutomaticKeyboardDismissal{
NOを返します。
}
@終わり
モーダルビューコントローラーを示すコード内。
UIViewController * someViewController = [[UIViewController alloc] init];
MyNavigationController * navController = [[MyNavigationController alloc] initWithRootViewController:someViewController];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[自己presentModalViewController:navControllerアニメーション:YES];