로컬 알림 (또는 해당 문제에 대한 푸시)을 처리하는 여러 가지 상태를 처리하는 방법에 대한 확신이 전혀 없습니다. 시작 옵션과 로컬 알림을 올바르게 처리하는 중
이
은 (내가 틀렸다면 정정 해줘)까지 내가 그들을 이해로 서로 다른 시나리오입니다 :을 수행합니다. 응용 프로그램 호출지고 전경
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{}
에 있었고 : application.applicationState == UIApplicationStateActive
나. 응용 프로그램 호출지고 배경
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{}
에 있었고 : application.applicationState == UIApplicationStateInactive
다. 응용 프로그램은 그렇게 종료되었습니다 :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}
는 먼저 호출지고와 afterwords는 : application.applicationState == UIApplicationStateActive이 (가 didFinishLanching ...
후 약간의 시간이 활성화 된 이후 어디- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{}
라는지고
각 시나리오에서 나는 다르게 행동해야합니다 :
. 앱이 포 그라운드에 있다면 에일 알림 영역을 표시하는 rt 및 사용자가 진행 버튼을 사용하여 경고를 닫으면 일부보기 제어기가 스택에 푸시됩니다.
b. 응용 프로그램이 배경에 있었고 사용자가 경고를 누른 경우 사용자가 경고를 누를 때 표시기가 의미를 따르기를 원하기 때문에 자동으로보기 컨트롤러를 스택에 푸시하고 싶습니다.
c. b와 동일한 시나리오. 사용자가 경고를 누르고 관련보기를 볼 것으로 예상합니다.
내 질문은 어떻게 navigationViewController에 관련 뷰를 푸시해야합니까? 포 그라운드에서 알림을받을 때 경고를 표시하는 방법은 무엇입니까?
문제는 시나리오 c가 시나리오 a를 포함한다는 것입니다. 이것은 didFinishlaunching이 호출 된 후 (즉, 알림을 처리했는지 여부는 신경 쓰지 않습니다.) 그런 다음 didRecieveLocalNotification이 호출되는 것입니다 (포 그라운드에서 알림을받는 것처럼). 그러나이 경우에는 경고를 표시하고 싶지 않습니다.
나는 처음부터 틀린가요?
시나리오 C의 경우 'didReceiveLocalNotification'이 호출되지 않고'didFinishLaunchingWithOptions' 만 호출됩니다. 이들은 애플리케이션 위임 메소드이므로 언제든지 이벤트를 수신 할 수 있으며 원하는 곳에서 이벤트를 수행 할 수 있습니다. 한 번에 하나씩 더 구체적인 질문을 할 수 있습니다. –
@MarcusAdams, thx. 나는 실제로 매우 구체적인 질문을했고, 그것을 따라 가면서 나는 내 가정을 잘못 시작했다. didReceiveLocalNotification 메서드가 시나리오 C에서 호출되지 않는다고 말한 것처럼 모든 것을 단순화했습니다. 가서 답장으로 귀하의 의견을 변환하고 그것을 받아 들일 것입니다. –