모달 방식으로 다른 view에서 다시 원래 view 로 돌아갔을 때 view의 상태 변화 감지 메소드 중 어느 것이 호출되는 지 궁금합니다.

7 답변 글타래를 보이고 있습니다
  • 글쓴이
    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      회원 가입 앱을 구현하면서 회원 가입 창과 그 이후에 전화번호 및 생년월일을 입력하는 창을 코드를 통해 모달 방식으로 view 전환을 하였습니다. 회원 가입 창과 전화번호 및 생년월일을 입력하는 창에서 취소 또는 이전 버튼을 눌렀을 때 첫 번째 view로 되돌아오면 첫 번째 view의 viewWillAppear가 호출되리라 예상했지만, 첫 번째 view로 되돌아가도 호출이 되지 않는 데 첫 번째 view로 돌아갔을 때 view의 상태 변화 감지를 할 수 있는 다른 메소드가 있는 지 질문드립니다.

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 580

      취소 또는 이전 버튼을 눌렀을 때 현재 보여진 모달이 사라지도록(dismiss)하도록 해야 이전 화면으로 돌아오는데, 현재 스토리보드에서 새로운 이전 화면을 만들어 새로 띄우도록(present) 한 것으로 생각됩니다.
      또, 회원가입 플로우를 모달로 전환하는 것이 적절한지 다시 한 번 살펴보시기 바랍니다.

      • 광현
        참가자
        • 글작성 : 15
        • 답글작성 : 26

        취소 또는 이전 버튼 확인 결과 모달이 dismiss 하도록 하고 있습니다. 완전히 메인 view를 코드로 구현한 것이 아니고, Main.storyborad가 남아있어서 발생하는 문제인지 알아보고 다시 질문하겠습니다.
        그리고 회원 가입 플로우에 모달을 사용해야하는 지는 좀 더 공부하겠습니다.
        답변 감사합니다.

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 580

      네, 버튼에 dismiss메서드를 실행하는 액션 메서드가 연결되어 있다면, 스토리보드에서는 버튼을 눌렀을 때 동작할 segue는 exit 외에는 없을 겁니다. exit segue를 연결한 것이 아니라면 새로운 화면을 보여줄 것입니다.

    • 성훈
      참가자
      • 글작성 : 2
      • 답글작성 : 14

      modalPresentationStyle이 어떻게 되어있나요? iOS13부터 기본 모달뷰가 바뀌면서 ViewController의 LifeCycle이 달라진 부분이 있습니다. modalPresentationStyle을 fullScreen으로 변경하게 되면 iOS13 이전 스타일의 모달뷰가 적용됩니다.

    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      처음부터 스토리보드로 UI 구성이 아니라서 오류가 발생한 건가 해서 SceneDelegate.swift 부분에 제가 직접 UINavicontroller의 rootViewController를 설정한 후에 피드백 드립니다.

      메인뷰에 대해서 NavigationController를 이용해서 화면을 전환하는 방식과 present를 이용하는 방식을 모두 직접해보고 안되는 것을 알 수 있었습니다.그리고 모달의 스타일을 popover가 아닐 때는 정상적으로 viewWillAppear가 호출되는 것을 확인했습니다.

      최근 회사에 입사 후에 정신이 없어 피드백이 많이 느렸던 점 진심으로 사과드립니다.

    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      팝오버라서 안되는 것을 네이게이션 컨트롤러를 이용해서도 해보고, 모달 중 팝오버 방식이 아닌 다른 방식으로 시도해서 viewWillAppear가 호출되지 않는

      것을 알 수 있었습니다.

      그리고 피드백이 늦은 점은 회사 일로 yagom.net을 자주 확인하지 못하고 한 번에 글을 달아서 발생했습니다. 성실한 답변을 주셔서 감사합니다. 고치도록 노려하겠습니다.

    • 쥬트
      참가자
      • 글작성 : 9
      • 답글작성 : 8

      이러한 경우 NotificationCenter를 통해 원래 화면에게 지정한 작업을 dismiss할때 post하도록 하는 방법은 어떨까요 ?? NotificationCenter에 대해 공부해보시고 적용하는 방법을 알아보면 쉽게 사용하실 수 있을 것 같습니다 !!

    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      쥬트님 댓글 확인이 늦었습니다. NotificationCenter에 대해서 공부하고 적용해보도록 하겠습니다. 답변 감사합니다. 😊bb

    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      .popover 입니다. 코드로 view 생성 뒤에 해도 여전히 viewWillAppear는 작동하지 않습니다.

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 580

      코드로 새로운 뷰 컨트롤러를 생성하는 것이 아니라, popover 되어있는 뷰 컨트롤러를 dismiss 해야합니다.
      iPad라면 더더욱 팝오버로는 viewWillAppear가 호출되지 않습니다.

7 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom