首页 > 解决方案 > Xcode Swift - 在视图控制器之间传递按钮路径数据

问题描述

我的应用程序有一类东西,所以当我按下主视图控制器上的“汉堡”按钮时,它会将我带到带有更多选项(按钮)的第二视图控制器,如“辣、温和、火”。我想要做的是我想将在thirdviewcontroller 上单击的那些按钮的路径保存为文本。

例如,在 thirdviewcontroller 上,文本显示“Burger -> Spicy”或“Burger -> mind”确保我正在处理路径中按下的按钮而不是输入的文本。

我怎么做

标签: iosswiftxcodebuttonviewcontroller

解决方案


一种简单的方法是在第二个和第三个视图控制器中保留两个变量。

class FirstViewController : UIViewController {
    
    @IBAction func buttonAction(_ sender: UIButton) {
        let vc2 = ...// instantiate second view controller
        vc2.textVal = sender.titleLabel!.text
        //present vc2
    }
}

然后在第二个视图控制器中获取按钮的文本并将其设置为文本

class SecondViewController : UIViewController {
    
    var textVal: String?
    
    @IBAction func buttonAction(_ sender: UIButton) {
        let vc3 = ...// instantiate thrid view controller
        let buttonText = sender.titleLabel!.text
        vc3.textVal = "\(textVal) -> \(buttonText)"
        //present vc3
    }
}

现在在第三个视图控制器中设置标签的文本

class ThridViewController : UIViewController {
    
    var textVal: String?
    @IBOutlet weak var lblText: UILabel!
    
    override func viewDidLoad() {
        lblText.text = textVal
    }
}

希望它会帮助你。


推荐阅读