- This topic has 2개 답변, 2명 참여, and was last updated 4 years, 7 months 전에 by jxxnnee.
1 답변 글타래를 보이고 있습니다
-
글쓴이글
-
-
jxxnnee참가자
- 글작성 : 6
- 답글작성 : 4
제가 이해 하기로는 notificationCenterDelegate 함수 중에
didreceive 를 이용하여 핸들링 해야한다고 알고 있습니다.
다만 핸들링 과정에서 어떻게 해야 할지 감이 잘 오질 않네요
예를 들어 rootViewController 를 mainVC 로 설정 했다고 치고
mainVC 를 로드하는 과정 (lifeCycle)에서 임의의 flag 값을 체크하여
push 알림을 tap 하여 진입했는지 체크하고 맞다면 원하는 뷰로 이동하도록 push 하면 되는건가요?
또, 백그라운드로 이동해 있는 경우에는 기존에 떠있는 view 가 있을텐데
이 view 는 어떻게 dismiss 시켜야 할까요?
2020-03-31 오후 4:18 #5459 -
야곰키 마스터
- 글작성 : 37
- 답글작성 : 579
이게 참 매번 복잡해요.
말씀하신 것처럼 고민의 포인트가 굉장히 많습니다.노티피케이션을 통해 진입했다면 AppDelegate 등에서 딜리게이트 메서드가 호출되므로 알 수 있죠.
그래서 그 때 flag 등을 만들어둬서 앱이 노티피케이션을 통해 진입했음을 남겨둬도 괜찮고요.
AppDelegate 객체는 앱 전역에서 singleton으로 사용하니까 앱 어디서든 노티피케이션 처리 후 flag를 없애줄 수 있죠.
didFinishLauncing 등의 메서드에서는 직접 처음 보여줄 화면을 설정해줘도 됩니다.
그 방법은 여러가지가 있을텐데, 아래 링크들을 참고해보면 힌트를 얻을수도 있을지도 모르겠어요.
그리고 백그라운드에 있던 앱은 화면 구조에따라 어떻게 변경해줘야 할지 고민해봐야겠지요 🙂- https://developer.apple.com/documentation/uikit/view_controllers/preserving_your_app_s_ui_across_launches/about_the_ui_restoration_process
- https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html
- https://devmjun.github.io/archive/Restorazation-2
- 이 답변은 야곰에 의해 4 years, 7 months 전에 수정됐습니다.
2020-03-31 오후 6:35 #5472
-
-
글쓴이글
1 답변 글타래를 보이고 있습니다
- 답변은 로그인 후 가능합니다.