从prepare segue传递indexpath.row以更改标签

时间:2019-08-18 16:09:37

标签: ios swift

为了学习,我想传递执行indexPath.row来准备segue并将其发送给另一个视图控制器

例如我有一个数组

var myArray = ["Benz", "BMW", "Porsche", "Audi"]

这是使用peformSegue在发件人中发送indexpath.row

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "car", sender: indexPath)
}

我想根据我点击的行来更改标签

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "car" {
        if let car = segue.destination as? car {
            let index = sender as! IndexPath
            car.label?.text = myArray[index.row]
        }
    }
}

另一个视图控制器

class car : UIViewController {
@IBOutlet weak var label: UILabel!    

}

但是它不起作用,并且发现另一个控制器nil中的标签,这是怎么回事?

0 个答案:

没有答案