我拥有的设置是三个视图控制器,前两个带有UITAITEVIEW,第三个带有图像。
布局
我想将数据从FirstViewController传递到SecondViewController,然后两组数据通过使用UITATIONVIEWS将数据传递给第三视图Controller。
我用来从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中选择糖果,在第二视图Controller uitableview中选择一种味道,然后在第三视图Conloller中使用标签风味糖果和选择的图像。
味道的标签确实显示出来。糖果的标签没有。如何将选择从糖果的选择传递给第三视图controller?
非常感谢。
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)
}