gpt4 book ai didi

ios - ViewController 在 didSelectRowAtIndexPath 中缓慢呈现

转载 作者:搜寻专家 更新时间:2023-11-01 05:58:49 26 4
gpt4 key购买 nike

我想在didSelectRowAtIndexPath 上显示下一个 ViewController,并且发生的情况如下。

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var section = indexPath.section
var row = indexPath.row
var cell:UITableViewCell = self.tblView.dequeueReusableCellWithIdentifier("cell") as! UITableViewCell
cell.textLabel?.text = "hello"
return cell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
frequentVC = storyboard.instantiateViewControllerWithIdentifier("frequentVC") as? DropOffFrequentVC
self.presentViewController(frequentVC!, animated: true,completion: nil)
}

nextViewController 出现,我将 UIViewController 关闭为 self.dismissViewControllerAnimated(true, completion:nil) 并且再次获取之前的 UIViewController调用,但现在当我等待一段时间并再次尝试呈现 UIViewController 时,UIViewController 被调用得非常慢,但 didSelectRowAtIndexPath 被立即调用。在等待期间,如果我在任何地方点击 aroundView,就会立即显示 UIViewController。此外,如果我点击两次 UIViewController,则会立即显示。

这是项目: https://drive.google.com/open?id=0B6dTvD1JbkgBN0J3SkFOTDJtZlU&authuser=0

最佳答案

我遇到过很多次了。

我不完全理解为什么这可以解决问题,但它确实有效。

tableView.deselectRow(at: indexPath, animated: false)

确保 animated 为 false 并在呈现 View Controller 之前调用它。

我的假设:

所选单元格是第一响应者。因此它负责呈现新的 View Controller 。因此滞后。我们看不到实际的 UITableViewCell 代码,因为它是私有(private)的,但其中的某些东西负责延迟执行该操作。

注意:上面的回复说延迟是由于使用 Storyboard造成的。那是错误的,因为我没有使用 Storyboard ,但仍然存在滞后。

关于ios - ViewController 在 didSelectRowAtIndexPath 中缓慢呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com