2012-02-01 1 views
0

私のアプリはローカルの通知を待ち受け、起動時にビューコントローラをナビゲーションスタックにプッシュします。viewDidAppear:正確に同じ時刻に2つのローカル通知が期限切れになった場合、実行する機会はありません。

しかし、2つの通知が同時に発生した場合、viewDidAppear:最初のView Controllerのプッシュから、デリゲートのdidReceiveLocalNotification:が2番目の通知で呼び出される前に実行するチャンスが得られません。

これは正しく表示されないコンソールにメッセージとビュー「」のための... /終了外観遷移を開始するアンバランスの呼び出し」になり

私はViewDidAppearを作ることができる方法があります:。からは、最初のコントローラのプッシュdidReceiveLocalNotification前に実行します?。。二度目に呼び出されます

答えて

0

確か-viewDidAppear:火災まで、第2の通知のあなたの処理を遅らせる

+0

私は成功せずこれを試してみましたようなものの使用:。ダブルdelayInSecondsを= 0.3; dispatch_time_ t popTime = dispatch_time(DISPATCH_TIME_NOW、(int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime、dispatch_get_main_queue()、^(void){ [[self.navigationController topViewController] .navigationController pushViewController:detailController animated:YES]; }); – Gruntcakes

+0

それは私が遅れて言ったことではありません。つまり、移行の途中にいる場合は、通知(またはそれを表すオブジェクト)を後で処理するためにキューに入れ、 '-viewDidAppear:'に対する応答としてそのキュー内の次のオブジェクトを処理します。 。 –

+0

私は興味深いものを見つけました。プッシュがアニメーションで終了した場合、アニメーションなしでダウンした場合、警告メッセージが表示されます。しかし、私はキューを追加します。 – Gruntcakes

関連する問題