我正在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];
但我的问题是键盘在开始转换之前就会立即消失。
我想进行推送转换,将键盘与第一个视图一起移动。
这是否可以在不必对第一个视图进行屏幕截图的情况下进行?
感谢您的帮助:)
答案 0 :(得分:0)
好的,我找到了怎么做,我有这个而不是[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之间进行转换。 我禁止文本字段辞职,并在转换过程中隐藏键盘视图。