为什么推动另一个视图控制器的动画不顺畅?

时间:2017-08-02 02:37:32

标签: ios uitableview core-animation

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

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

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

    }

anotherViewController目前是故事板上的空视图控制器。它只打印viewDidLoad()中的“我来了” 以下是问题: 当我触摸单元格时,推动动画似乎卡住了,请检查以下GIF 我对发生的事情感到很困惑 随意给出任何建议。

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

View Hierarchy

2 个答案:

答案 0 :(得分:1)

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

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

但是当我从故事板中实例化一个场景时,它运行良好。显然,您需要一个具有相应故事板标识符的场景:

let controller = storyboard!.instantiateViewController(withIdentifier: "Details")
navigationController?.pushViewController(controller, animated: true)

或者,如果我在两个视图控制器之间定义了segue并执行了segue,那也是有效的:

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

答案 1 :(得分:0)

对我来说,解决方案是显式设置新视图控制器的背景颜色,即使它是黑色。 我遇到了同样的问题,因为我没有使用情节提要,所以这是我的解决方案。