Trulyawesome
Swift Delegate Data Pass (VC간의 데이터 전달) 본문
들어가기전에
오늘은 Delegate를 이용해서 Data 전달을 구현해보겠습니다. 개발을 하면서 화면을 dismiss할때 데이터전달을 하기위해 공부하다가 알게되었습니다. 공부는 zeddios님의 블로그 https://zeddios.tistory.com/310를 참고해서 공부하였습니다.
Delegate Protocol Code
1
2
3
|
protocol SendDataDelegate {
func sendData(data: String)
}
|
cs |
프로토콜은 메소드를 구현할때 정의를 합니다 자바의 interface와 같습니다. 프로토콜을 선언하여 데이터를 보내줄 메소드를 만들어줍시다 ^ㅡ^
Data Pass Action
1
2
3
4
5
6
|
@IBAction func btnClicked(_ sender: Any) {
if let data = tf.text {
delegate?.sendData(data: data)
dismiss(animated: true, completion: nil)
}
}
|
cs |
그 후 저는 Action함수 안에 데이터를 보내는 함수를 적었습니다.
class에 Delegate 채택
1
|
class ViewController: UIViewController, SendDataDelegate
|
cs |
만들어둔 Delegate 프로토콜을 채택해줍니다. 설명을 위해 저렇게 적었지만 원래는 extension으로 따로 빼주어서 작업하는게 좋습니다.💪
1
2
3
|
func sendData(data: String) {
exLabel.text = data
}
|
cs |
그 후 채택한 SendData()함수를 구현해줍니다. 받은 데이터를 어떻게 적용하는지에 대한 코드를 적는곳입니다.
prepare()
1
2
3
4
5
6
|
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "show" {
let vc: DataPassViewController = segue.destination as! DataPassViewController
vc.delegate = self
}
}
|
cs |
그 후 prepare함수로 delegate를 위임해줍시다! 이렇게 구현하시면 delegate를 이용해서 데이터를 보내는 방법은 끝이났습니다. 이것을 잘 이용해서 앞으로 개발에서 잘 써먹을 수 있을듯합니다😀
다음에는 이것을 좀 더 programmatically하게 구현하는 방법을 공부해서 포스팅 하겠습니다.🔥
'프로그래밍 > iOS' 카테고리의 다른 글
[Swift] xib customView 사용하기 (0) | 2020.08.15 |
---|---|
[Swift] Realm 사용방법 (0) | 2020.08.08 |
UITextField에서 클릭시 DatePicker 나오게 구현하기 (0) | 2020.07.29 |
[IOS] collectionView no data view 만들기 (swift) (0) | 2020.07.16 |
API 사용하기 1탄 (Model 작성하기) (0) | 2020.07.07 |