2016-11-03 3 views
0

Это мой код из двух диспетчеров представлений, нужно пройти «numberToDisplay» из книги классов. В класс bookThree, но это не работает, всегда показывайте 0 в bookThree. Я использую swift3 КСН 10, xocod 8. bookTwo:iOS swift prepareForSegue не может передавать данные между двумя viewcontroller

import UIKit 
import Foundation 
class bookTwo: UIViewController { 
override func viewDidLoad() { 
    super.viewDidLoad() 
// Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "ms1"{ 
     let destinationVC = segue.destination as? bookThree; 
     destinationVC?.numberToDisplay = 7 

    } 
    } 
} 

bookThree

import UIKit 

class bookThree: UIViewController { 
var numberToDisplay = 0 

    @IBOutlet weak var showType: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    showType.text = "Tapped \(numberToDisplay) times." 
     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 
+0

он должен работать нормально –

+1

Попробуйте изменить 'вар numberToDisplay = 0' до' вар numberToDisplay: Int ' – Danoram

+0

Пожалуйста, проверьте мой ответ и ответ .. – KSR

ответ

1

В Swift 3, подпись для метода "prepareForSegue" изменился. Так заменить код «prepareForSegue» с этим:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "ms1"{ 
      let destinationVC = segue.destination as? bookThree 
      destinationVC?.numberToDisplay = 7 

     } 
    } 
Смежные вопросы