【问题标题】:Animation hangs when pushing UIViewController to UINavigationController将 UIViewController 推送到 UINavigationController 时动画挂起
【发布时间】:2016-07-10 20:32:05
【问题描述】:

我有一个完全用代码创建的自定义 UITableViewCell。这个项目根本不使用自动布局,所有的绘图都是在代码中完成的。当用户点击我的自定义单元格中的按钮时,它会调用 UITableViewController 实现的委托,然后将新的视图控制器推送到导航控制器。它工作得很好,但是当它过渡时,动画会冻结一半,然后像这个 gif 中所见的那样一次全部转入。 我曾使用故事板参与过项目,并且知道它不应该是这样的。我试过使用 dispatch_after 和 dispatch_async 导致相同的结果。这是我正在使用的代码。

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

如何修复这个错误?提前感谢您的帮助!

【问题讨论】:

  • 无法查看 gif,请转发或修改权限。或者,更好的是,使用编辑器中的图片上传器来内联它。
  • 感谢您告诉我!我将 gif 移到内联
  • 你没有给我们足够的信息。您是否使用自定义推送/弹出动画?我们无法按现状复制它。
  • 没有自定义推送/弹出动画。我实际上只是从 UITableViewController 调用这两行代码,这正是为什么这个错误一直困扰我几个小时。

标签: ios uitableview uiviewcontroller uinavigationcontroller


【解决方案1】:

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

        self.view.backgroundColor = UIColor.whiteColor()

【讨论】:

    【解决方案2】:

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

    在被覆盖的viewWill...viewDid... 方法之一中查找tableView.isHidden = true 并删除该行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 2013-05-30
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多