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에 연결된 목적지
##