Xcode Swift - 在视图控制器之间传递按钮路径数据

Posted

技术标签:

【中文标题】Xcode Swift - 在视图控制器之间传递按钮路径数据【英文标题】:Xcode Swift - Pass Button Path Data Between View Controllers 【发布时间】:2020-07-11 06:24:58 【问题描述】:

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

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

我该怎么做

【问题讨论】:

搜索依赖注入 【参考方案1】:

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

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
    

希望对你有帮助。

【讨论】:

它不工作!多个错误。我认为该方法确实正确,但在代码方面我认为有问题 这里我没有写完整的代码,只是原型,你需要实例化第二和第三个视图控制器,然后你必须呈现/推送视图控制器。为自己做那件事。我只是想向您展示如何将按钮数据从一个视图控制器传递到另一个。 对不起,我是初学者,我什至不太了解 然后查看this 和this 的答案,了解如何实例化和呈现/推送视图控制器。

以上是关于Xcode Swift - 在视图控制器之间传递按钮路径数据的主要内容,如果未能解决你的问题,请参考以下文章

在滚动视图中更改 UIView 而 / 更新滚动视图高度 - Swift 3 / Xcode 8

Xcode(Swift):我无法在视图控制器之间传输数据

将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器

UISearchbar 并在查看控制器 xcode swift 中传递数据

在 Swift 中的视图控制器之间传递数据

在 Xcode 6 和 Swift 中的视图之间进行类似 Snapchat 的滑动导航)