push 알림을 tap 했을때 원하는 뷰를 어떻게 띄울까요

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • jxxnnee
      참가자
      • 글작성 : 6
      • 답글작성 : 4

      제가 이해 하기로는 notificationCenterDelegate 함수 중에

       

      didreceive 를 이용하여 핸들링 해야한다고 알고 있습니다.

       

      다만 핸들링 과정에서 어떻게 해야 할지 감이 잘 오질 않네요

       

      예를 들어 rootViewController 를 mainVC 로 설정 했다고 치고

       

      mainVC 를 로드하는 과정 (lifeCycle)에서 임의의 flag 값을 체크하여

       

      push 알림을 tap 하여 진입했는지 체크하고 맞다면 원하는 뷰로 이동하도록 push 하면 되는건가요?

       

      또, 백그라운드로 이동해 있는 경우에는 기존에 떠있는 view 가 있을텐데

       

      이 view 는 어떻게 dismiss 시켜야 할까요?

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

      이게 참 매번 복잡해요.
      말씀하신 것처럼 고민의 포인트가 굉장히 많습니다.

      노티피케이션을 통해 진입했다면 AppDelegate 등에서 딜리게이트 메서드가 호출되므로 알 수 있죠.
      그래서 그 때 flag 등을 만들어둬서 앱이 노티피케이션을 통해 진입했음을 남겨둬도 괜찮고요.
      AppDelegate 객체는 앱 전역에서 singleton으로 사용하니까 앱 어디서든 노티피케이션 처리 후 flag를 없애줄 수 있죠.
      didFinishLauncing 등의 메서드에서는 직접 처음 보여줄 화면을 설정해줘도 됩니다.
      그 방법은 여러가지가 있을텐데, 아래 링크들을 참고해보면 힌트를 얻을수도 있을지도 모르겠어요.
      그리고 백그라운드에 있던 앱은 화면 구조에따라 어떻게 변경해줘야 할지 고민해봐야겠지요 🙂

      • 이 답변은 야곰에 의해 4 years 전에 수정됐습니다.
      • jxxnnee
        참가자
        • 글작성 : 6
        • 답글작성 : 4

        답변 감사합니다 ^_^

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

logo landscape small

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