이번에는 Table VIew에서 화면 전환 시 데이터도 함께 이동 할 수 있는 방법에 대해 알아보겠습니다.
메인 스토리보드에 Table View를 가진 VC와 첫 번째 VC에서 다음화면으로 넘어갈 VC가 있습니다.
그리고 Navigaion Controller와 Segue를 이용해 Cell을 터치하면 화면이 전환되게 구현했습니다.
즉, 2개의 VC [ ViewController ] 와 Navigation Controller를 준비한 상태입니다.
테이블 뷰 생성하는 법 = https://seagreen83.tistory.com/121
화면 전환 하는 법 = https://seagreen83.tistory.com/125
기본적으로 Table View에는 간단한 배열을 구현한 상태입니다.
a, b, c 섹션을 터치하면 다음 VC로 넘어가게 되는데,
지금은 3가지 항목 다 동일하게 Label이라는 text가 보이는 화면이 나타납니다.
3가지 섹션에 값을 각각 다른 값으로 읽어오기 위해 두 번째 ViewController에 swift 파일 하나를 추가하겠습니다.
[ File > New > File > Cocoa Touch Class > Class 이름 지정 ] 순으로 진행해 파일을 하나 만들어주시면 됩니다.
저는 SecondVC라는 이름으로 만들겠습니다.
다음으로 Label이 있는 VC를 선택한 뒤 identity Inspector에서 방금 만든 swift 파일을 Class로 지정하겠습니다.
SecondVC Assistant를 실행시켜 두 번째 VC에 Label을 아웃렛으로 추가하겠습니다.
저는 myLabel이라는 이름으로 추가했습니다.
이제 첫 번째 ViewController.swift 파일로 돌아가 코드를 작성해보겠습니다.
Prepare 메서드는 Sugue가 수행될 것을 뷰 컨트롤러에게 알리는 메서드입니다.
ViewContorller를 전환하기 전에 해당 ViewContorller로 데이터를 전송시켜주는? 메서드라고 생각하면 될 것 같습니다.
코드 내용을 보시면,
- segue.destinaion 객체를 SecondVC 타입으로 다운캐스팅 할 수 있을 때,
cell.textLabel에 저장된 text 값을 nextViewContorller의 textToSecondVC로 보내줍니다.
- 38 번째 줄인 cell에 대한 값을 전송해주는 코드를 작성해야 cell.textLabel에 대한 값을 접근 할 수 있습니다.
그럼 다시 SecondVC.swift 파일로 넘어와 첫 번째 VC에서 넘겨지는 값을 받는 코드를 작성해보겠습니다.
- 20 번째 줄에서는 넘겨지는 데이터 값을 저장할 textToSecondVC라는 변수를 선언했습니다.
- viewWillAppear 메서드를 사용해 view가 보여지기 전에 textToSecondVC 변수 값을 myLabel의 text값으로 저장합니다.
실행화면
각 섹션에 따른 배열의 값이 Label의 text값으로 저장된 것을 확인할 수 있습니다.
textToSecond에 저장된 값을 활용해 switch/case 문으로 다양한 기능들을 구현 할 수 있을것 같습니다. :)
'2022_iOS 앱 개발자 워크숍 > 3, App' 카테고리의 다른 글
맛집 소개 앱 만들기 [1] (0) | 2022.01.24 |
---|---|
TableView : Custom Cell (0) | 2022.01.22 |
ViewController 화면 이동(전환) (2) | 2022.01.20 |
Table View Header Title UI 변경 (2) | 2022.01.19 |
Table View 생성하기 2 ( 중첩 배열 사용 ) (0) | 2022.01.19 |
댓글