gpt4 book ai didi

swift - 试图找出一种使用单个 UITableview 的不那么笨拙的方法

转载 作者:行者123 更新时间:2023-11-28 13:49:19 25 4
gpt4 key购买 nike

我有一个 UITableViewController 连接到一个 UIViewController。我制作了一个全局 counter 来跟踪 UITableView 中的哪一行被选中。因为根据选择的行,呈现的 UIViewController 中的一些信息会发生变化。

我认为可以对其进行整理,这样 dayx segue 只需调用一次并且 counter 可以根据选择的行相应地更改?但我无法弄明白。

这就是我目前拥有的,它可以工作但看起来很乱?:

//what happens when row is selected
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0 {
counter = 0
self.performSegue(withIdentifier: "dayx", sender: self)
} else if indexPath.row == 1 {
counter = 1
self.performSegue(withIdentifier: "dayx", sender: self)
}
else if indexPath.row == 2 {
counter = 2
self.performSegue(withIdentifier: "dayx", sender: self)
}
else if indexPath.row == 3 {
counter = 3
self.performSegue(withIdentifier: "dayx", sender: self)
}
else if indexPath.row == 4 {
counter = 4
self.performSegue(withIdentifier: "dayx", sender: self)
}
else if indexPath.row == 5 {
counter = 5
self.performSegue(withIdentifier: "dayx", sender: self)
}
else if indexPath.row == 6 {
counter = 6
self.performSegue(withIdentifier: "dayx", sender: self)
}
}

最佳答案

使用flatMap:

swift 4.0

indexPath.flatMap {
print($0)
counter = $0
self.performSegue(withIdentifier: "dayx", sender: self)
}

后来:

let _ = indexPath.compactMap {
counter = $0
self.performSegue(withIdentifier: "dayx", sender: self)
}

了解 flatMap 的基础知识。阅读本文 Replacing flatMap With compactMap

更新

如果您的所有行都旨在执行 performSegue。简单:

//what happens when row is selected
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

counter = indexPath.row
self.performSegue(withIdentifier: "dayx", sender: self)
}

关于swift - 试图找出一种使用单个 UITableview 的不那么笨拙的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54943006/

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