gpt4 book ai didi

swift - 根据条件选择segue

转载 作者:行者123 更新时间:2023-11-28 13:40:02 24 4
gpt4 key购买 nike

我想根据行的数据是否匹配为我的 UITableVieController 单元格选择一个 segue。我目前有 2 个 segues(只有一个来自单元格,因为这是我能做的最大值)但我似乎无法让它工作。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

let indexPath = self.tableView.indexPathForSelectedRow
let free = allAlbums[indexPath!.row].free

if free == "1"
{

if segue.destination is CaseViewController
{
let vc = segue.destination as? CaseViewController


vc?.title = allAlbums[indexPath!.row].title
}
}
else {
}
}

override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {

if identifier == "caseDetail" {
let indexPath = self.tableView.indexPathForSelectedRow
let free = allAlbums[indexPath!.row].free
if free == "1"
{
self.performSegue(withIdentifier: "caseDetail", sender: self)
}
else {
self.performSegue(withIdentifier: "paidCase", sender: self)
}
}

return true
}

本质上,单元格的“空闲”值是 1 那么它需要转到一个 View Controller ,否则它将转到另一个。

最佳答案

不要在 shouldPerformSegue 中执行 performSegue 您需要在执行之前检查该值并采取相应措施,因为这将导致递归调用 performSegue 将无限次地调用 shouldPerformSegue

你需要把它放在didSelectRowAt

let free = allAlbums[indexPath.row].free
if free == "1" {
self.performSegue(withIdentifier: "caseDetail", sender: self)
}
else {
self.performSegue(withIdentifier: "paidCase", sender: self)
}

将 segue 的源挂接到 vc 本身而不是单元

关于swift - 根据条件选择segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175670/

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