Programing Language/iOS(Swift)
(iOS) 화면간 데이터 전송 방법
Jude_Song
2019. 10. 17. 18:01
728x90
반응형
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
Passing Data between View Controllers
I'm new to iOS and Objective-C and the whole MVC paradigm and I'm stuck with the following: I have a view that acts as a data entry form and I want to give the user the option to select multiple
stackoverflow.com
728x90
반응형