通过Xcode(三个segues)中多个元素中的uitable视图传递数据



我拥有的设置是三个视图控制器,前两个带有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)
 }

最新更新