태그: fullScreen, modal, modalPresentationStyle, UIViewController, 모달, 뷰, 컨트롤러
- This topic has 2개 답변, 2명 참여, and was last updated 4 years, 2 months 전에 by mi kim.
-
글쓴이글
-
-
mi kim참가자
- 글작성 : 10
- 답글작성 : 8
안녕하세요, ios 공부를 막 시작한 학생입니다.
화면 전환에 대해서 질문이 있습니다.
뷰컨트롤러에서 viewWillAppear은 처음 생성될때, 화면이 다른 화면에 의해 가려졌다가 다시 나타날때 호출된다고 알고 있습니다.
- 스토리보드에서 액션 세그웨이(Present Modally)로 화면 전환을 한 후,
다시 원래 화면으로 이동하기위해 되돌아가기 버튼 이벤트로 self.presentingViewController?.dismiss을 호출하여 되돌아갔을때,
원래 화면의 뷰컨트롤러에서 viewWillAppear은 호출되지 않는데 올바른 작동인가요?
제 생각대로라면 가려졌다가 다시 나왔으니 호출되어야 할 것 같았습니다…
- navigation controller 사용했을 때와 같이 새로운 화면이 완전히 뒤덮이고, 다시 원래 화면으로 되돌아가는 방식에서는
원래 화면의 뷰컨트롤러의 viewWillAppear는 정상적으로 호출되고 있습니다.
Present Modally로 사용했을 때는 새로운 화면 뒤에 원래 화면이 조금 보이는데,
혹시 viewWillAppear은 화면이 완전히 새롭게 그려지는 방식일때만 호출되는건가요?
2020-10-09 오전 12:11 #30295 -
야곰키 마스터
- 글작성 : 37
- 답글작성 : 579
새로이 보여지는 모달의
modalPresentationStyle
스타일이 완전히 화면을 덮는.fullScreen
이 아니기 때문에 그렇습니다 🙂
iOS 13 이전엔 기본값이.fullScreen
이었는데 13이후부터.automatic
으로 변경되고, 모달 스타일 각각의 디자인이 변경되면서 다 덮지 않는 경우도 생겼습니다.
이에 따라viewWillAppear
의 동작여부도 달라질 수 있습니다. 그렇지만 이는 향후 iOS의 버전 변경에 따라 또 달라질 수 있으니 버전 변경에 따라 변경 포인트도 확인해봐야겠죠? 🙂
모달이 dismiss 할 때viewWillAppear
가 호출되길 원한다면modalPresentationStyle
을.fullScreen
스타일로 변경해보세요.2020-10-09 오전 1:09 #30310
-
-
글쓴이글
- 답변은 로그인 후 가능합니다.