gpt4 book ai didi

iOS 8 - performSegueWithIdentifier 加载 View 但直到我点击屏幕才显示

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

我有一个选项卡栏应用程序,其中一个包含表格 View 的选项卡在按下表格单元格时转入第三个 View 。 View Controller 充当 UITableView 的委托(delegate),我按如下方式以编程方式触发 segue:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println("cell tapped, starting segue")
performSegueWithIdentifier("showDetails", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
println("prep for segue")
// TODO - more code here
}

最后,我设置了以下代码来调试第三个 View 的问题:

class DetailsViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
println("did load")
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
println("will appear")
}
}

问题是,当我第一次按下表格单元格时,viewWillAppear 函数永远不会被调用,直到我以某种方式与 UI 交互(例如,只是点按屏幕上的任意位置)。我想进入的 View 没有显示,就好像屏幕没有刷新一样。但是,当我点击屏幕时,整个动画都会运行,我可以按预期继续。这是我点击一个单元格时的输出:

cell tapped, starting segue
prep for segue
did load

我试图在网上寻找解决方案,但我发现的所有问题似乎根本不起作用。就我而言,它正在起作用,但不是立即起作用。

如果有帮助,这是我的 Storyboard的屏幕截图:

Screenshot of my Storyboard

最佳答案

Sefu 找到了答案并将其发布在评论中,我遇到了同样的问题,他的解决方案对我有效。诀窍是让它被选中触发 segue 的单元格需要设置选择样式(而不是无),而且我还发现取消选择 tableView:didSelectRowAtIndexPath: 中的单元格也需要发生。

关于iOS 8 - performSegueWithIdentifier 加载 View 但直到我点击屏幕才显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27726516/

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