segue를 사용할 때의 주의점

segue는 잘못하면 두 번 실행됩니다.



화면 천이시에 값을 건네주는데 segue를 사용해 처리를 쓰는 일도 있다고 생각합니다만,
방법에 따라서는 2회 처리가 되므로 주의가 필요합니다.

htps // t. 코/8v후 ymBflD — Mr.Brooks (@MrBrook27743251) September 11, 2019


보통 움직이는 것처럼 보이지만, 디버그해 보면 이런 느낌이 되고 있습니다.




qiita.rb

@IBAction func toBlackButton(_ sender: UIButton) {
    performSegue(withIdentifier: "toBlack", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let nextView = segue.destination as! BlackViewController
    print("呼び出された!")
}






그렇게 호출씨라도 에엔야에서···. 라고 말하고 싶지만.



원인으로는



버튼에서 직접 Controller를 호출하고 있었기 때문에, 버튼이 눌려졌을 때 segue도 불려 2회 호출된다고 하는 구조(있어 있는지는 모르지만)



그래서 대책으로서는





Controller에서 Controller로 전달하면

Controller내에서 호출된 segue가 기동할 뿐이므로 1회로의 호출이 된다고 느낍니다.



값을 다음의 화면의 배열에 넣는다고 동작을 하고 있으면 왠지 2개 한꺼번에 들어가는 것으로 판명.



조심하자.


좋은 웹페이지 즐겨찾기