【问题标题】:Can't pass data through segue. Swift无法通过 segue 传递数据。迅速
【发布时间】: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 [],所以我猜数据传递从未发生过。我该怎么办?

【问题讨论】:

  • 你做了什么调试?您是否已单步执行您的代码并使用断点?当您使用调试器并单步执行代码时,您确定调用了所有正确的方法并正确设置了所有变量吗?

标签: ios swift memory segue


【解决方案1】:

问题是这不是一个永远会被调用的方法:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

那是没有意义的;它不会被调用,你的代码也永远不会运行。

你需要这样写:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

现在将调用您的方法。

【讨论】:

  • 现在一切正常。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 2019-05-11
  • 2015-01-13
相关资源
最近更新 更多