Ios 为什么推送另一个视图控制器的动画不平滑?

Ios 为什么推送另一个视图控制器的动画不平滑?,ios,uitableview,core-animation,Ios,Uitableview,Core Animation,我在每个单元格上都有一个表视图和集合视图。 当我点击单元格时,将在单元格的didSelectRowAt:indepath方法中调用以下代码 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { navigationController?.pushViewController(anotherViewController(), animated: true) } 另

我在每个单元格上都有一个表视图和集合视图。
当我点击单元格时,将在单元格的
didSelectRowAt:indepath
方法中调用以下代码

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        navigationController?.pushViewController(anotherViewController(), animated: true)

    }
另一个视图控制器
目前是故事板上的空视图控制器。它只在
viewDidLoad()中打印“我来了”

问题出在这里: 当我触摸电池时,推送动画似乎卡住了,请检查下面的GIF。
发生了什么事我真的很困惑。
请随便提建议

下图显示了视图层次结构。
表格视图上的单元格。
集合视图和单元格内容视图上的其他组件。
最后,在集合视图的内容视图上显示图像视图


我怀疑问题在于
另一个ViewController()
引用。当我推到
UIViewController
实例时,我甚至能够重现这个问题:

navigationController?.pushViewController(UIViewController(), animated: true)
但当我从故事板实例化一个场景时,效果很好。显然,您需要具有适当情节提要标识符的场景:

let controller = storyboard!.instantiateViewController(withIdentifier: "Details")
navigationController?.pushViewController(controller, animated: true)
或者,如果我在两个视图控制器之间定义了segue并执行了segue,那么这也起到了作用:

performSegue(withIdentifier: "DetailsSegue", sender: self)

我的解决方案是显式设置新视图控制器的背景色,即使它是黑色的。
我也有同样的问题,因为我不使用故事板,这是我的解决方案。

您是否尝试将动画设置为true并查看效果?检查您在next viewcontroller的
viewDidLoad
ViewWillAspect
方法中所做的操作。@user1000抱歉,GIF显示了动画,这正是我的问题。我试图将动画设置为false,以查看可能发生的情况。正如你们想象的那个样,问题消失了,因为并没有动画。。。。。我忘了把它换回来。我现在已将其更改为true,谢谢。@YunCHEN我刚刚设置了
viewDidLoad()
方法并打印了“我来了”。您在真实设备中尝试过这个吗?我想简单地调用
UIViewController()
并不能正确初始化控制器。GIF显示目标视图控制器的背景颜色为全黑色。但是从故事板初始化的视图控制器具有白色背景色。谢谢你的支持。你帮了我很多。