활용-8 앱 / 디테일화면 만들기 (활용앱 67강) 질문있습니다.
334
작성한 질문수 14
안녕하세요. 앨런님 강의 잘 듣고 있습니다. 좋은 강의 감사합니다. 활용앱 67강 듣고 질문 드립니다. 영상의 좀 마지막 부분인데 뷰컨트롤러에서 테이블뷰 셀의 Member데이터를 DetailViewController로 넘기고 여기로 넘어온 Member데이터를 다시 DetailView에 넘겨서 셀 클릭시 다음 화면에 데이터를 표시하도록 구현을 했는데 궁금한것은 loadView함수가 viewDidLoad보다 먼저 실행이 되는걸로 알고있는데 loadView로 그럼 현재 DetailViewController의 view를 갈아 끼우고 viewDidLoad를 불러서 데이터를 DetailView에 전달하는데 그럼 데이터를 전달한 후에 한번더 view = DetailView로 정보가 저장된 뷰를 다시 끼워주는게 맞는거아닌지.. 이렇게 안해도 데이터가 잘 표시되는 이유가 궁금합니다!
답변 1
0
네 안녕하세요 khs50851님!
뷰는 다시 교체해줄 필요가 없습니다.
데이터가 변하면 ==> 뷰 내부에서 그리는 내용이 자동으로 바뀌게 되어있는 것이라고 보시면 될 것 같아요.
왜나면, 여기서 디테일뷰의 member변수의 데이터가 생기거나, 변하거나, 교체되면 didSet (계산속성 또는 연산프로퍼티)가 자동으로 불리게 되어있습니다. 즉, 뷰를 교체하는 것이 아니라.. 데이터를 교체해주면 화면은 언제든지 다시 표시가 될 수 있습니다.
didSet이라는 것이, 저장속성이 변하면 (여기서는 var member: Member? 저장속성) 언제든지 다시 호출되도록 구현이 되어있으므로, loadView시점이후에, viewDidLoad가 불릴때 멤버가 전달이 되도 당연히 디테일뷰에 잘 표시가 되겠죠.
(가장 좋은 확인 법은 loadView, viewDidLoad, (디테일뷰의) didSet 에 print를 통해 한번 출력해보시는 거겠죠.)
모든 구현이 마찬가지이지만, 데이터가 바뀐다고 뷰를 다시 교체하는 방식으로 구현하지는 않습니다. 데이터만 바꿔주면, 뷰는 해당 내용만 다시 그리는 것이죠. 앞에서 배웠던 내용에서도 마찬가지입니다. 주사위 게임에서도 버튼을 누르면 ===> 이미지뷰에 담겨있던 이미지만 바꿔주는 것이죠. 뷰 전체를 교체하는 것이 아니라요.
감사합니다. :)
수강연장부탁드려도될까요..
0
42
2
Drawing Cycle 관련 질문
0
72
1
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
0
95
2
델리게이트 패턴 관련 질문
0
66
2
수강 기간 연장 부탁드릴 수 있을까요?
0
61
1
활용 앱 57강 질문입니다.
0
55
1
활용 앱 30강 에러 질문입니다
0
64
2
기초앱 17강 Contraints 설정 질문입니다.
0
67
2
기초 앱 4강 Type Any -> UIButton
0
66
2
34강 유용한 앱 추천에 나오는 UIKitViewer에 대해서 질문이 있습니다
0
78
1
깃에 코드는 올려도 된다고 하셨는데
0
109
1
수강기간 연장신청 드려도 될까요?
0
82
1
수강 기간 연장 부탁드려도 될까요?
0
120
2
수강 기간 연장 신청 요청드립니다.
0
131
2
playground에서 상단 실행?아이콘 회전 관련하여...
0
136
1
활용앱53강에서 질문있습니다.
0
164
2
Project 명칭 변경방법이 궁금합니다.
0
140
1
override 에 대해서 궁금한 것이 있습니다.
0
125
2
섹션8] 코드 리팩토링 문의
0
99
1
xcode 에서 ios 버전 선택 및 시뮬레이터 관련 질문
0
566
2
수강 기간 연장 부탁드려도 될까요?
0
130
2
뷰모델의 상태변화 와 didSet
0
98
1
@Sendable 키워드
0
94
1
클로저
0
106
2





