Ios 为什么应用自定义推送动画时键盘隐藏?

Ios 为什么应用自定义推送动画时键盘隐藏?,ios,objective-c,custom-transition,Ios,Objective C,Custom Transition,我有两个控制器,上面有UITextFields。我需要他们之间的自定义过渡与键盘显示,旁边的过渡 当我使用默认的推送动画时,一切都很好。但是如果我从animationControllerForOperation返回我的转换类,键盘在转换之前隐藏,在转换之后显示 那么,有人能给我一个解决方案或解释,为什么键盘隐藏在自定义转换中?转换持续时间=0.4,我在viewDidLoad中设置了[textField becomeFirstResponder] 这里有一段视频:编辑 或者更简单的方法: 实现委托

我有两个控制器,上面有UITextFields。我需要他们之间的自定义过渡与键盘显示,旁边的过渡

当我使用默认的推送动画时,一切都很好。但是如果我从
animationControllerForOperation
返回我的转换类,键盘在转换之前隐藏,在转换之后显示

那么,有人能给我一个解决方案或解释,为什么键盘隐藏在自定义转换中?转换持续时间=0.4,我在
viewDidLoad
中设置了
[textField becomeFirstResponder]

这里有一段视频:

编辑

或者更简单的方法:

实现委托方法
-(BOOL)textField应取消编辑
UITextField
的:(UITextField*)textField
,并返回NO,只要下一个VC尚未加载


也许您可以尝试覆盖
-(BOOL)canResignFirstResponder
方法的
UITextField
,以返回
NO
,只要新视图控制器的视图尚未加载。(例如,通过设置
BOOL
属性,该属性在加载新视图控制器的视图时设置为
YES
)。比如:

也许这可以防止键盘被隐藏(这似乎是在“推”操作中自动发生的)


希望这种方法有帮助。

看看UIViewControllerTransitionCoordinator类


下面是类似问题的答案:

您能显示您的过渡动画代码吗?还有,隐藏/显示真的那么糟糕吗?我自己几乎没有注意到,在你的例子中,我看不出有什么理由使用多个视图控制器来完成你想要完成的任务。这可以通过设置文本字段本身的动画来轻松处理,以更改内容,而无需将控制器移入移出。在更改控制器时保持键盘打开似乎让我感到困惑。
animateAlongsideTransition
仅在推送时执行。出于某种原因,当我从
animationControllerForOperation
返回自己的
UIViewControllerAnimatedTransitioning
时,键盘视图完全忽略了对其帧的更改。
- (BOOL) canResignFirstResponder {
    return nextVCIsLoaded;
}