【问题标题】:Transition to another View Controller from UITableViewCell Freezes the app - iOS 11从 UITableViewCell 转换到另一个视图控制器会冻结应用程序 - iOS 11
【发布时间】:2017-09-28 07:54:13
【问题描述】:

我有一个包含各种帖子的 UITableView,用户可以对其发表评论。一旦用户点击单元格中的评论按钮,就会加载 cmets 视图控制器,并调用 viewwillappear 但在呈现视图之前,应用程序会冻结。我正在进行 API 调用以获取 viewDidLoad 中的 cmets,并在 API 调用完成后重新加载表。我无法弄清楚 iOS 11 在哪里做不同的事情。任何帮助将不胜感激。

【问题讨论】:

  • 你有什么错误按摩吗?
  • 没有错误信息。只是冻结应用程序。
  • 添加一些代码,尤其是你在 viewWillAppear / viewDidLoad 中所做的事情
  • @rdurand,是的,这就是问题所在。我已经回答了问题

标签: objective-c iphone uitableview ios11 xcode9


【解决方案1】:

在后台线程调用 API

let dispatchTime: DispatchTime = DispatchTime.now() + Double(Int64(0.1 * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC)
        DispatchQueue.main.asyncAfter(deadline: dispatchTime, execute: {
            DispatchQueue.main.async{

               //Call API function here
            }
        })

【讨论】:

    【解决方案2】:

    问题似乎与导航控制器有关,就像 iOS 11 转换中的大多数问题一样。

    我在 viewDidLoad 中为 viewcontroller 设置了右栏按钮。评论那行代码并将其移动到 viewDidAppear 并且应用程序没有冻结。

    但是当用户点击返回按钮时,这会引起另一个冻结。所以我在 XCode 9 中重新创建了转场,根本没有在导航项上设置右栏按钮。这似乎解决了这个问题,现在没有任何冻结。希望这对其他人有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 2017-10-29
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多