根据条件选择segue

时间:2019-05-16 19:49:17

标签: swift segue

我想根据一行数据是否匹配为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,则需要转到一个视图控制器,否则将转到另一个视图控制器。

1 个答案:

答案 0 :(得分:1)

请勿在{{1​​}}内执行performSegue,然后再执行演奏并进行相应操作,因为这将导致递归调用,因为shouldPerformSegue将调用{{1 }}无限地

您需要将其放置在performSegue

shouldPerformSegue

将搜索源链接到vc本身而不是单元上