在两个ViewController之间传递数组

时间:2019-02-07 16:15:06

标签: ios swift uiviewcontroller

首先,我对编程没有经验。

有没有一种简单的方法可以将一个数组(其中包含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()
}

}

0 个答案:

没有答案