OStack程序员社区-中国程序员成长平台

标题: ios - 带有提示的 View Controller 的 UINavigationController 动画 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 23:01
标题: ios - 带有提示的 View Controller 的 UINavigationController 动画

我正在实现一个使用 UINavigationController 的应用程序。它目前显示 3 个 View ,每个 View 都有一个 UITableViewController。显示的第一个 View 只有一个title,而另外两个有一个titleprompt。所有的转场都是在 Storyboard 中创建的,这相当简单:Storyboard of UINavigationController
问题:一旦我从一个有提示的 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-推荐答案


我找到的唯一解决方案是一个绝对黑客,其灵感来自于由 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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4