我想根据一行数据是否匹配为UITableVieController单元格选择一个序列。我目前有2个segue(由于只有一个单元格,这是我能做的最大工作),但我似乎无法使其正常工作。
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,则需要转到一个视图控制器,否则将转到另一个视图控制器。
答案 0 :(得分:1)
请勿在{{1}}内执行performSegue
,然后再执行演奏并进行相应操作,因为这将导致递归调用,因为shouldPerformSegue
将调用{{1 }}无限地
您需要将其放置在performSegue
shouldPerformSegue
将搜索源链接到vc本身而不是单元上