我正在实现一个使用UINavigationController的应用程序。它目前显示3个视图,每个视图为UITableViewController
。显示的第一个视图只有title
,而其他两个视图都有title
和prompt
。所有segues都在故事板中创建,这非常简单:
问题:当我从一个有提示的视图中为AWAY设置动画时,动画会出现故障 - 标题(有时是后退按钮)"飞入"从底部开始,而不是从右边开始。
示例: https://youtu.be/N-K8piEJ1aY(播放慢动画录制)
在这里你可以看到从第一个视图到第二个视图的动画工作正常,但从第二个到第三个视图是不好的。动画回来了。
此问题与Weird animations when changing NavigationItem prompt类似。该线程的结论是,这只发生在iOS 7上,但我在iOS 10.0 / 10.1上运行。问题出现在模拟器和真实设备上。
有什么想法吗?
答案 0 :(得分:2)
我找到的唯一解决方案就是在this post的{{3}}上受到Catalina T.启发的绝对黑客攻击的绝对黑客攻击:
在出现的VC上viewWillAppear:
或导航控制器上调用pushViewController:animated:
之后(或者我在调用performSegueWithIdentifier:sender:
后猜测时添加以下代码:
// 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
)