我正在实现一个使用 UINavigationController 的应用程序。它目前显示 3 个 View ,每个 View 都有一个 UITableViewController 。显示的第一个 View 只有一个title ,而另外两个有一个title 和prompt 。所有的转场都是在 Storyboard 中创建的,这相当简单:
问题:一旦我从一个有提示的 View 中动画离开,动画就会出现故障 - 标题(有时是后退按钮)从底部“飞入”,而不是从右侧“飞入”。
示例: https://youtu.be/N-K8piEJ1aY (开启慢速动画录制)
在这里您可以看到从第一个 View 到第二个 View 的动画效果很好,但是从第二个 View 到第三个 View 的动画有问题。动画返回作品。
这个问题似乎类似于 Weird animations when changing NavigationItem prompt .该线程中的结论是,这仅发生在 iOS 7 上,但我在 iOS 10.0/10.1 上运行。模拟器和真机都会出现这个问题。
有什么想法吗?
Best Answer-推荐答案 strong>
我找到的唯一解决方案是一个绝对黑客,其灵感来自于由 Catalina T 启发的绝对黑客。在 this post 上:
在出现的 VC 上的 viewWillAppear: 中或在导航 Controller 上调用 pushViewController:animated: 之后(或者我在调用 performSegueWithIdentifier:sender 之后猜测) : 添加如下代码:
ObjC
// This is a hack that's because UINavigationBar with prompts is broken
navigationController.navigationBarHidden = YES;
navigationController.navigationBarHidden = NO;
swift
// This is a hack that's because UINavigationBar with prompts is broken
navigationController.isNavigationBarHidden = true
navigationController.isNavigationBarHidden = false
其中 navigationController 是对执行所有推送的 UINavigationController 的引用(例如 viewController.navigationController )
编辑:现在似乎在弹出和重新推送 VC 时会出现其他奇怪的动画,所以这个答案不是一个真正的解决方案。留下它以帮助其他人进入类似的兔子洞。
关于ios - 带有提示的 View Controller 的 UINavigationController 动画,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40938271/
|