-
(iOS) 화면간 데이터 전송 방법Programing Language/iOS(Swift) 2019. 10. 17. 18:01728x90반응형
ViewController(A) 에서 -> page2(B)로의 데이터 이동
1. Segue화면 전환 방법으로 데이터 전송방법 A->B
- ViewController(A) 클래스
class ViewController: UIViewController { @IBOutlet weak var input_name: UITextField! var name_text : String = "" @IBAction func move_page2btn(_ sender: Any) { //segue를 이용한 데이터 전달 <- 스타일보드에서 무조건 segue작업해줘야함 name_text = input_name.text! performSegue(withIdentifier: "name", sender: self) //여기서 "name"은 스토리보드에서 segue를 연결후 Identifier에 지정한 명칭이다. } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // segue를 이용한 데이터 전달 let viewController = segue.destination as! page2 //page2 클래스에서 final_name 이라는 변수가 있다 => var final_name = "" viewController.final_name = name_text //여기서 as는 자바에서 class에 상속(extent)과 같은 개념이다. // } }
2. 코드 화면 전환으로 데이터 전송방법 A->B
- ViewController(A) 클래스
class ViewController: UIViewController { @IBOutlet weak var input_name: UITextField! var name_text : String = "" override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func move_page2btn(_ sender: Any) { // 코드를 통한 화면 전환 if let viewController = self.storyboard?.instantiateViewController(withIdentifier: "page2") as? page2 //여기서 as는 자바에서 class에 상속(extent)과 같은 개념이다. { name_text = input_name.text! viewController.final_name = name_text viewController.modalTransitionStyle = UIModalTransitionStyle.coverVertical self.present(viewController, animated: true, completion: nil) } } }
3. Protocol 방식으로 데이터 전송방법 B->A
- B 페이지
-A 페이지
참고영상 : https://www.youtube.com/watch?v=7fbTHFH3tl4
-프로토콜 방식으로 데이터를 전송하는 것은 A뷰에서 B뷰로 화면 전환 후에 B뷰에서 dismiss 또는 네비게이션 이동 popViewController으로 인해 다시 A화면으로 돌아갈때 사용된다.
- 프로토콜은 B뷰에서 선언후 값을 넣어주고 A 뷰에서는 B 프로토콜에서 선언한 것을 상속받고 오버라이드 받은 다음에 스토리보드를 담은 변수에 B에서 선언한 delegate 함수를 메서드로 사용해서 self 로 받아준뒤 받아온 값을 사용한다.
(자세한사항은 B 클래스에서 프로토콜 선언부터 코드 끝까지 보고 A클래스에서 프로토콜을 상속 받은 다음부터 자세히 보기 바란다.)
------------------------------------------------------------------
코드 참조하면서 공부!!!
참고 스텍오버 플로우 자료
https://stackoverflow.com/questions/5210535/passing-data-between-view-controllers/31934786#31934786
728x90반응형'Programing Language > iOS(Swift)' 카테고리의 다른 글
(iOS) TableView에서 사진 삭제하기 후 정렬하기 (0) 2019.10.28 (iOS) Xcode유용한 단축키 모음 (0) 2019.10.25 [iOS] 커스텀 알림창 만들기 (0) 2019.10.25 (iOS) UIImageView에 url 로 이미지 넣기 (0) 2019.10.24 (iOS) ViewController 화면 전환 방법 (0) 2019.10.17