【发布时间】:2017-09-14 20:01:15
【问题描述】:
我不能通过 ViewControllers 传递变量,即使我真的认为我已经完成了所有必要的工作。
Game3ViewController:
class Game3ViewController: UIViewController, CLLocationManagerDelegate
{
var START = 1
var zombieMarkersCenters: [[Double]] = Array(repeating:Array(repeating:0, count:2), count:10)
var zombieHealth: [Int] = Array(repeating:100, count:10)
var HP = 100
var bullets = [0,0]
/* ... REST OF THE CODE */
override func viewDidAppear(_ animated: Bool)
{
/* here I assign values to the variables */
}
/* ... REST OF THE CODE */
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "goToBackpack"
{
let Backpack4 = segue.destination as! Backpack4ViewController
Backpack4.zombieMarkersCentersBackpack = zombieMarkersCenters
Backpack4.bulletsBackpack = bullets
Backpack4.STARTBackpack = START
Backpack4.zombieHealthBackpack = zombieHealth
}
}
/* ACTIONS */
@IBAction func openBackpack(_ sender: Any)
{
performSegue(withIdentifier: "goToBackpack", sender: self)
timer.invalidate()
}
Backpack4ViewController:
class Backpack4ViewController: UIViewController
{
var zombieMarkersCentersBackpack = [[Double]]()
var bulletsBackpack = [Int]()
var STARTBackpack = Int()
var zombieHealthBackpack = [Int]()
override func viewDidLoad()
{
super.viewDidLoad()
print("WORKS?: ", bulletsBackpack, STARTBackpack, zombieHealthBackpack)
/* ... REST OF THE CODE */
打印结果为:[] 0 [],所以我猜数据传递从未发生过。我该怎么办?
【问题讨论】:
-
你做了什么调试?您是否已单步执行您的代码并使用断点?当您使用调试器并单步执行代码时,您确定调用了所有正确的方法并正确设置了所有变量吗?