问题类似于"如何从不同的viewController传递数据"但在这种情况下,我需要另一个信息,我知道如何将数据从一个viewController传递到另一个,但我不知道如何告诉第二个viewController第一个视图中对象的特定状态。在我的情况下,我在第一个视图中有一些按钮进入。
button.isHidden = true
点击之后,我想告诉第二个viewController哪些按钮已被点击,也许我已经创建了一个表示按钮状态的变量,但我不知道该怎么做有人可以帮帮我吗?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToLast" {
guard let vc = segue.destination as? FinalClass else { return }
let guest = segue.destination as! FinalClass
if let user = sender as? User {
}
}
}
用户可以是
struct User {
var button1 = Button1 tapped
var button2 = Button2 tapped
ecc.
}
答案 0 :(得分:5)
假设您有两个viewControllers - FirstViewController
和SecondViewController
。
所以首先,
让我们在FirstViewController
和SecondViewController
中声明两个数组 -
var tappedButtonsArray = NSMutableArray() // In 'FirstViewController'
AND
var previousViewTappedButtonsArray = NSMutableArray() // In 'SecondViewController'
这是我添加的代码删除轻敲的按钮|来自tappedButtonsArray
中的FirstViewController
-
@IBAction func btnTapped(_ sender: UIButton) { // Single action for all buttons
if (tappedButtonsArray.contains(sender)){
tappedButtonsArray.remove(sender) // Remove previous tapped button on unselect
}
else{
tappedButtonsArray.add(sender) // Add tapped button on select
}
}
这是您的表演方法:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToLast" {
guard let secondViewController = segue.destination as? SecondViewController else { return }
secondViewController.previousViewTappedButtonsArray = tappedButtonsArray
}
}
我已经完成了一个没有任何模型的简单数组概念,因此您可以理解以下内容。我希望它能帮助你开始。