使用UINavigationController转换:键盘消失



我正在UINavigationController中做一个自定义动画,它允许隐藏第一个视图中的选项卡。

它从一个带有虚拟键盘的文本视图开始并显示一个UITableViewController:

CATransition* transition = [CATransition animation];
transition.duration = 0.25f;
transition.type =  kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[window.layer addAnimation:transition forKey:kCATransition];
[navigationController setNavigationBarHidden:NO];
[navigationController pushViewController:preferencesViewController animated:NO];

但我的问题是,键盘在开始转换之前立即消失。

我想做一个push transition,让键盘和第一个视图一起移动。

这是可能的,而不必做第一个视图的截图?

谢谢你的帮助

好的,我找到了怎么做,我有这个代替[window.layer addAnimation:transition forKey:kCATransition];:

for (UIWindow *someWindow in [[UIApplication sharedApplication] windows])
    if (![someWindow respondsToSelector:@selector(screen)] || [someWindow screen] == [UIScreen mainScreen])
        [someWindow.layer addAnimation:transition forKey:kCATransition];

现在我正试图得到相反的工作(返回到第一个视图)。我想让键盘和第一个视图一起翻译。但是,它只会在视图完成翻译后出现。

也许我必须在应用动画之前获得键盘的视图?

编辑:我让它工作,我改变了我的策略:我在rootviewcontroller和navigationcontroller之间进行转换。我不允许文本框辞职,并且在转换期间隐藏键盘视图。

最新更新