Segue

작성일

Passing data

  • 2.Segue
  • 여러개의 뷰컨트롤러가 하나의 스토리보드에 있을때 많이 사용

Segue

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "segueDetail" {
            if let detailVC = segue.destination as? SegueDetailViewController {
                detailVC.dataString = "abcd"
            }
        }
    }

segue로 연결되어 있는 destination(뷰컨트롤러)가 SegueDetailViewController로 as? 타입케스팅되냐 라고 물어보고
맞으면 실행시킨다. 하지만, 이렇게 바로 접근하는건 안좋은 방법이여서 밑에 코드처럼,

class SegueDetailViewController: UIViewController {

    @IBOutlet weak var dataLabel: UILabel!
    
    var dataString = ""
    
    override func viewDidLoad() {
        super.viewDidLoad()
            
        dataLabel.text = dataString
        // Do any additional setup after loading the view.
    }

}

SegueDetailViewController에 dataString을 만들고, viewDidLoad에 dataLabel.text = dataString 이런식으로
접근할수 있는 데이터를 만들어서 사용하는게 더 좋은 방법이다.

.identifier

고유 이름.

.destination

segue에 연결된 목적지

##