【发布时间】:2017-01-25 15:19:27
【问题描述】:
我有一个带有UITabBarController 的情节提要,其中每个选项卡都包含一个UINavigationController。对于UINavigationControllers 之一,在推送或呈现视图控制器时没有过渡动画。
至少有两种不同的情况会发生这种情况
1. 我设置了故事板 segue 来推动子视图控制器。在表格视图中选择单元格时触发 segue。 “动画”框被选中。
尝试以编程方式推送子视图控制器会产生相同的结果。
self.navigationController?.pushViewController(nextController, animated: true)
2. 尝试从导航控制器的根视图控制器模态呈现另一个视图控制器时也没有动画。
modalViewController.modalTransitionStyle = UIModalTransitionStyle.flipHorizontal
self.present(modalViewController, animated: true, completion: nil)
如果我从另一个视图控制器呈现modalViewController,则过渡是动画的,这让我相信正在呈现的根视图控制器中有问题。
有没有办法在UIViewController 上禁用我可能不小心触发的动画?我检查并确认没有UIView.setAnimationsEnabled(false)
【问题讨论】:
-
你能打包上传你的演示项目吗?
-
视图和视图控制器这两个术语不能互换。我编辑了你的问题标题说“......当推送视图控制器......”
-
@OwenZhao 我无法在演示项目中重现这一点,也无法上传我的真实项目
-
@DuncanC 谢谢。显然我不是在推动观点。
-
我们几乎不可能从外面知道发生了什么。您看到了一些奇怪的、非标准的行为,并且由于您无法在演示项目中重现它或共享您的真实项目,我不确定我们可以如何提供帮助。您是否尝试过用普通的 UIViewController 替换源视图控制器作为测试?您可能需要这样做,然后开始使用您的视图控制器的特征一次自定义源视图控制器,并反复测试,观察行为是否回来。
标签: ios iphone swift animation uikit