【发布时间】:2016-11-14 16:41:55
【问题描述】:
我有两个视图控制器(一个是 tableVC),我想在它们之间传递信息。这是该 tableVC 中的代码:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var rowSelected = indexPath.row
print(rowSelected) //always returns the correct integer
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destViewController: newController = segue.destination as! newController
newController.rowSelected = rowSelected
}
performSegue(withIdentifier: "rowSelected", sender: Any?.self)//segue to newController
}
这是我希望将信息传递给的 newController 的代码:
@IBOutlet weak var label: UILabel!
var rowSelected = Int()
override func viewDidLoad() {
super.viewDidLoad()
label.text = infoArray[rowSelected]
print(rowSelected) //always logs 0 to the console, regardless of cell selection
}
我以为我已经正确设置了它,但无论出于何种原因,调用infoArray 的索引始终为 0,无论在 tableVC 中选择了哪个单元格。不知道是什么问题。
【问题讨论】:
-
需要在 didSelectRowAt 之外调用具有 override func prepareForSegue 的代码,并在 didSelectRowAt 方法中使用 performSegue。