首先,我对编程没有经验。
有没有一种简单的方法可以将一个数组(其中包含String类型的元素)从一个ViewController传递到另一个ViewController。两个ViewController都连接到Main.Storyboard中的两个不同的视图。 我已经尝试过:(在ViewControllerOne中)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let viewcontrollertwo = segue.destination as! ViewControllerTwo
viewcontrollertwo.listcopy = list
list是我想从ViewControllerOne传递到ViewcontrollerTwo的数组,而listcopy是我想将初始数组存储到其中的变量。
这似乎没有错误,但是当我想在ViewControllerTwo中使用listcopy时,出现此错误:
“无法在属性初始化程序中使用实例成员'listCopy';属性初始化程序在'self'可用之前运行”
我尝试使用listCopy的代码为:
let randomNumber = Int.random(in:1 ... listCopy.count)
Nor也不会将playerList中的单个元素重新分配给新变量。
由于无法找到此问题的答案,我将非常高兴,我可以很好地理解该问题,以便在我的代码中实现。
谢谢和亲切的问候
ViewControllerTwo代码:
导入UIKit
ViewControllerSlides类:UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
updateSlide()
}
@IBOutlet weak var slidePlaceHolder: UILabel!
@IBOutlet weak var testLabel: UILabel!
var playersCopy = [String]()
var randomNumber = Int.random(in: 1...playersCopy.count)
var orders = [
"\(playersCopy[0])",
"\(playersCopy[1])",
"\(playersCopy[2])",
"\(playersCopy[3])"
]
func updateSlide() {
let slideText:String = orders[Int.random(in: 0..<orders.count)]
slidePlaceHolder.text = slideText
}
@IBAction func slideButton(_ sender: UIButton) {
updateSlide()
}
@IBAction func nextButton(_ sender: UIButton) {
updateSlide()
}
}