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
将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器