상세 컨텐츠

본문 제목

SwiftUI 튜토리얼 [챕터1-기초2-섹션7: 차일드뷰에 데이터 전송하기] 애플 공식자료 번역

본문

728x90

섹션7

Child View (차일드뷰:자녀뷰)에 데이터 전송하기

 

LandmarkDetail 뷰는 랜드마크를 보여주기 위해, 아직도 반영구-코드 디테일을 사용한다.

LandmarkRow처럼, LandmarkDetail 타입과 뷰는 'landmark 프로퍼티'를 소스로 사용해야 한다.

 

child(자녀) 뷰로 시작하면, 각 열에 반영구-코딩을 하지 않고도, 

CircleImage, MapView, LandmarkDetail 을 =>입력된 디스플레이 데이터로 변환할 수 있다.

 

[필수 영어 단어]

1)circle 서클: 원, 동그라미
2)preview 프리뷰: 미리 보기
3)provider 프로바이더: 제공 담당자, 제공해 주는 물건
4)logic 로직: 논리
5)build 빌드: 짓다, 만들다
6)parameter 퍼래미터: 한도
7)coordinate 코-올디넛: 좌표
8)property 프로퍼티: 재산, 자산
9)region 리전: 지역
10)method 메써드: 방법
11)VStack 븨스택: vertical stack 버티컬스택=> 세로로 쌓기
12)navigation 내비게이션: 안내, 방향
13)bar 바: 막대
14)spacer 스페이서: 공간을 차지해 주는 어떤 것
15)modifier 모디파이어: 수식어
16)inline 인라인: 일렬, 직렬, 즉시처리의
17)scroll 스크롤: 돌돌 말다, 굴리다

스텝1

CircleImage.swift 에서,  CircleImage에 저장된 'image 프로퍼티'를 추가한다.

 

*이것은 SwiftUI를 사용해서 뷰를 만들 때, 가장 흔한 패턴이다. 

특정 뷰를 표현하기 위한, 모디파이어 모음은 보통 감싸 안겨 있고, 압축되어 있다.

 


스텝2

preview provider에 Turtle Rock 이미지를 전송시키기는 업데이트를 한다.

 

*프리뷰 로직(logic)을 수정했더라도, 업데이트 실패를 하게 되는데, 이유는 빌드(build)에서 실패했기 때문이다.

예로, circle image 같은 디테일뷰는 입력의 한도(parameter)도 필요하다.

 


스텝3

MapView.swift에서, 'coordinate 프로퍼티'를 추가하고,

고정된 coordinate를 전송하기 위해, preview provider를 업데이트한다.

 

*이 변경은 빌드(build)에도 영향을 준다. 왜냐하면, 디테일뷰는 새로운 한도(parameter)의 맵뷰를 가지기 때문이다.

잠시 후, 디테일뷰를 수정할 것이다.


스텝4

coordinate 값에 기반한 지역(region)을 업데이트하는 메써드(method)를 추가한다.

 


스텝5

'onAppear 뷰 모디파이어' 를 Map에 추가한다.

이는 '현재 coordinate'에 기반한 지역(region)을 산출해 낸다.


스텝6

LandmarkDetail.swift에서, LandmarkDetail 에, 'Landmark 프로퍼티'를 추가한다.

 


스텝7

LandmarkList.swift에서, LandmarkDetail의 목적지로 '현재 landmark'를 전송한다.

 


스텝8

LandmarkDetail.swift에서, 원하는 방식으로 필요한 데이터를 전송한다.

 

*모든 연결이 끝나면, 프리뷰는 다시 작동한다.

 


스텝9

VStack을 ScrollView로 바꾸면, 앱 이용자는 콘텐츠설명 부분을 스크롤할 수 있다.

그리고 이제 필요 없어진 Spacer는 제거한다.


스텝10

마지막으로, 'navigationTitle(_: )모디파이어' 를 불러서, 내비게이션바(bar)에 제목을 붙인다.

그리고, 'navigationBarTitleDisplayMode(_: )모디파이어'를 불러서, 제목을 'inline'식으로 나타내게 만든다.

 

*내비게이션은 뷰가 내비게이션 스택(stack) 안에 있을 때만 변경의 효과가 있다.

 


스텝11

라이브 프리뷰모드로 변경해서, 만들어 둔 리스트가 적절한 랜드마크 디테일로 길을 안내하는지(navigate) 확인해 보자.

섹션7 완료~

다음은 섹션 8

 

https://ingodwelove.tistory.com/19

 

SwiftUI 튜토리얼 [챕터1-기초2-섹션8: 다양한 애플기기로 미리보기 ]

섹션8 다양한 애플기기로 미리 보기 다음은 LandmarkList_Previews 프리뷰 프로바이더에 코드를 추가해서 리스트뷰를 다른 디바이스 사이즈로 렌더링 한다. 기본값으로, 미리 보기는 다른 디바이스 사

ingodwelove.tistory.com

 

728x90

관련글 더보기