【发布时间】:2018-09-27 16:57:58
【问题描述】:
我正在编写一个小型基本程序(仍在学习),但我遇到了障碍。
我现在可以在 2 个视图控制器之间传递 1 个数组,并在我点击第二个按钮时成功打印它。
但是,我真正想做的是传递 2 个数组和一个整数,它们是从第一个 VC 上的函数创建的,并通过第二个 VC 访问它们。
第一个 VC 的代码在这里:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToWorkout" {
if let destVC = segue.destination as? WorkoutViewController {
destVC.bothArrays = self.testFunction()
}
}
//Get the new view controller using segue.destinationViewController.
//Pass the selected object to the new view controller.
}
func testFunction() -> [String] {
let randomArray1 = ["blah","blah","ploop"]
let randomArray2 = ["alan", "john"]
let randomInt = 5
return BOTH ARRAYS AND INT TO SEND TO THE NEXT VIEW CONTROLLER?
}
@IBAction func goPressed(_ sender: UIButton) {
performSegue(withIdentifier: "goToNextVC", sender: self)
}
这里是第二个 VC:
class WorkoutViewController: UIViewController {
var randomArray1 = [String]()
var randomArray2 = [String]()
var randomInt = 0
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func nowButtonPressed(_ sender: UIButton) {
print(randomArray1)
print(randomArray2)
print(randomInt)
}
}
我可以让它只使用一个数组,但我需要多个数组和一个要传递的值!我已经尝试过使用它(例如尝试'-> [String],[String],Int)但没有运气
非常感谢任何帮助!
【问题讨论】:
-
你应该可以使用元组,(array1,array2,int)
-
不要使用 func 来分配,而是直接在 prepare(...) 中分别为每个属性分配。 DestVC.randomArray1 = randomArray1 等等