【问题标题】:UINavigationController animation from view controller with prompt带有提示的视图控制器的 UINavigationController 动画
【发布时间】:2017-04-17 17:19:50
【问题描述】:

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

示例: https://youtu.be/N-K8piEJ1aY(开启慢速动画录制)
在这里,您可以看到从第一个视图到第二个视图的动画效果很好,但是从第二个到第三个视图的动画有问题。动画返回作品。

这个问题似乎类似于 Weird animations when changing NavigationItem prompt 。该线程中的结论是,这仅发生在 iOS 7 上,但我在 iOS 10.0/10.1 上运行。模拟器和真机都会出现这个问题。

有什么想法吗?

【问题讨论】:

  • Fwiw 我遇到了同样的问题。如果我想出任何解决方法,我会告诉你

标签: ios animation uinavigationcontroller uinavigationitem visual-glitch


【解决方案1】:

我找到的唯一解决方案是一个绝对黑客,灵感来自于 this postthis post 上的 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 时会出现其他奇怪的动画,所以这个答案不是一个真正的解决方案。留下它以帮助其他人进入类似的兔子洞。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2017-03-26
    相关资源
    最近更新 更多