我正在使用自定义转换实现呈现 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
手动调用......但我真的很想知道如何以正确的方式进行操作。