我的设置是三个视图控制器,前两个带有UITableView,第三个带有图像。
我想将数据从firstViewController传递到secondViewController,然后使用UITableViews通过segues将这两组数据传递给thirdViewController。
我用来从firstViewController传递到secondViewController的代码如下:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "identifier1", sender: candy[indexPath.row])
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let selectedCandy = segue.destination as? SecondViewController
selectedCandy?.showCandy = sender as? String
}
对于secondViewController中的代码非常相似:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "identifier2", sender: flavors[indexPath.row])
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let selectedFlavor = segue.destination as? ThirdViewController
selectedFlavor?.showFlavor = sender as? String
}
我正在做的主要是在firstViewController UITableView中选择一个Candy,在secondViewController UITableView中选择一个Flavor,然后在thirdViewController中有一个标签FLAVOR CANDY和一个选择图像。
Flavor的标签确实显示出来。 Candy的标签没有。如何将选择从Candy的segue传递给thirdViewController?
非常感谢提前。
答案 0 :(得分:0)
FirstViewController
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "identifier1", sender: self.candy[indexPath.section])
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "identifier1" {
let goNext = segue.destination as! SecondViewController
goNext.showCandy = sender as! String
}
}
SecondViewController
var showCandy = ""
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "identifier2", sender: self.flavors[indexPath.section])
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "identifier2" {
let goNext = segue.destination as! ThirdViewController
goNext.showCandy = showCandy
goNext.showFlavor = sender as! String
}
}
ThirdViewController
var showCandy = ""
var showFlavor = ""
override func viewDidLoad() {
super.viewDidLoad()
print(showCandy)
print(showFlavor)
}