segue не переводит строку в segue (swift4) - PullRequest
0 голосов
/ 25 декабря 2018

Мой код ниже пытается передать значение из twoviewcontroller для просмотра контроллера.Segue работает, и я могу перейти от просмотра контроллера для просмотра контроллера.Тем не менее, передача не передает значение.В файле журнала на VC1 все еще ничего не говорит, даже когда я перехожу с vc2 на vc1

        class ViewController: UIViewController {
    var score = ""
override func viewDidLoad() {
    super.viewDidLoad()


    print("mm:",score)
    if score == "" {


          FIRE.loadGif(name: "pGif")
    }
    if score == "b"{
        FIRE.loadGif(name: "ezgif.com-video-to-gif")

    }



}}

КОНТРОЛЛЕР ВТОРОГО ВИДА

class twoViewController: UIViewController {



    let FIRE = UIButton()
override func viewDidLoad() {
    super.viewDidLoad()


    view.addSubview(FIRE)

      FIRE.addTarget(self, action:#selector(handleRegisterb), for: .allTouchEvents)

}
@objc func handleRegisterb(sender: UIButton){

    let vc = ViewController()
    vc.score = "b"
    performSegue(withIdentifier: "beg", sender: nil)

}

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

executeSeguewithidentifier фактически только позволяет переключению (между ViewControllers) произойти. В то время как prepareForSegue подготавливает данные для передачи между контроллерами представления, и реализация по умолчанию этого не делает ничего;Вы можете переопределить его для передачи соответствующих данных в новый контроллер представления

0 голосов
/ 25 декабря 2018

Вы должны использовать метод prepare для передачи данных через segue,

@objc func handleRegisterb(sender: UIButton){
    performSegue(withIdentifier: "beg", sender: self)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "beg") {
        let vc = segue.destination as! ViewController
        vc.score = "b"
    }
}
...