将UIViewController推送到UINavigationController时,动画会挂起

时间:2016-07-10 20:32:06

标签: ios uitableview uiviewcontroller uinavigationcontroller

我有一个完全用代码创建的自定义UITableViewCell。该项目根本不使用autolayout,所有绘图都是在代码中完成的。当用户点击我的自定义单元格中的按钮时,它会调用UITableViewController实现的委托,然后将新的视图控制器推送到导航控制器。它运行正常,但是当它正在转换时,动画会冻结一半,然后一下子就像在这个gif中看到的一样。 我曾经使用过故事板进行过项目,并且知道它不应该像这样。我已经尝试使用dispatch_after和dispatch_async导致相同的结果。这是我正在使用的代码。

let vc = UIViewController()
self.navigationController!.pushViewController(vc, animated: true)

如何修复此错误?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这个错误很难理解,但是在显示的viewController的viewDidLoad中插入以下代码行修复了它。

        self.view.backgroundColor = UIColor.whiteColor()

答案 1 :(得分:0)

如果要推送的视图控制器是UITableViewController且表视图在生命周期中有时被隐藏,也会发生这种情况。

在覆盖的tableView.isHidden = trueviewWill...方法之一中查找viewDid...,然后删除该行。