来自视图控制器的UINavigationController动画,提示符为

时间:2016-12-02 17:56:27

标签: ios animation uinavigationcontroller uinavigationitem visual-glitch

我正在实现一个使用UINavigationController的应用程序。它目前显示3个视图,每个视图为UITableViewController。显示的第一个视图只有title,而其他两个视图都有titleprompt。所有segues都在故事板中创建,这非常简单:Storyboard of UINavigationController
问题:当我从一个有提示的视图中为AWAY设置动画时,动画会出现故障 - 标题(有时是后退按钮)"飞入"从底部开始,而不是从右边开始。

示例: https://youtu.be/N-K8piEJ1aY(播放慢动画录制)
在这里你可以看到从第一个视图到第二个视图的动画工作正常,但从第二个到第三个视图是不好的。动画回来了。

此问题与Weird animations when changing NavigationItem prompt类似。该线程的结论是,这只发生在iOS 7上,但我在iOS 10.0 / 10.1上运行。问题出现在模拟器和真实设备上。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我找到的唯一解决方案就是在this post的{{3}}上受到Catalina T.启发的绝对黑客攻击的绝对黑客攻击:

在出现的VC上viewWillAppear:或导航控制器上调用pushViewController:animated:之后(或者我在调用performSegueWithIdentifier:sender:后猜测时添加以下代码:

ObjC

// This is a hack that's because UINavigationBar with prompts is broken
navigationController.navigationBarHidden = YES;
navigationController.navigationBarHidden = NO;

夫特

// This is a hack that's because UINavigationBar with prompts is broken
navigationController.isNavigationBarHidden = true
navigationController.isNavigationBarHidden = false

其中navigationController是对UINavigationController进行所有推送的引用(例如viewController.navigationController

编辑:现在看来,当弹出和重新推出VC时会出现其他奇怪的动画,所以这个答案不是真正的解决方案。离开它,以帮助其他人下来类似的兔子洞。