我正在使用自定义转换实现呈现UIViewController:
JWModalController *modal = [[JWModalController alloc] init];
CGRect originalFrame = [[self view] convertRect:[[modal view] frame] toView:nil];
[[modal view] setFrame:CGRectZero];
[[self view] addSubview:[modal view]];
[self addChildViewController:modal];
[modal didMoveToParentViewController:self];
[UIView animateWithDuration:0.6 animations:^{
[[modal view] setFrame:originalFrame];
}];
这很有效,我对结果非常满意。
但是:当以常规方式([self presentViewController:modal completion:nil];
)呈现viewController时,键盘会在文本字段是第一响应者的情况下解除。
使用我的方式时,键盘会不解雇。
当然,我可以轻松跟踪第一个响应者或保存textField并手动调用-resignFirstResponder
...但我真的想知道如何以正确的方式 。