2017-09-14 2 views
-3

ViewControllers를 통해 변수를 전달할 수는 없지만 모든 필수 사항을 완료했다고 생각합니다.segue를 통해 데이터를 전달할 수 없습니다. Swift

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 [], 그래서 데이터 통로가 일어난 적이없는 것 같아요. 어떻게해야합니까?

+0

어떤 디버깅을 했습니까? 코드를 밟아서 중단 점을 사용 했습니까? 디버거를 사용하고 코드를 단계별로 실행할 때 모든 올바른 메서드가 호출되고 모든 변수가 올바르게 설정되어 있는지 확인하십시오. –

답변

2

문제는 이것이 이제까지 호출되는 방법은 아닙니다이다 : 무의미

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

; 호출되지 않고 코드가 실행되지 않습니다.

는이를 작성할 필요가 :

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

는 이제 방법은

를 호출합니다.

+0

이제 모든 것이 아름답게 작동합니다. 감사! –

관련 문제