0

ライブ カメラ フィードを含む viewController があります。多くのアプリと同様に、 メソッドviewWillAppearviewWillDisappearメソッドで、カメラの開始と停止の両方を行います。

多くの場合と同様に、viewWillDisappearは常に呼び出され、willWillAppearは呼び出されなくなったようです (iOS 4.0 以降では?)

ここに問題があります: このビューが私の TabBar の selectedVC であり、ユーザーが通知センターを下にずらして表示すると、viewWillDisappearが常に呼び出され、ライブ フィードが停止します。しかし、このビューが閉じられると、コントローラーが再び有効になったというコールバックを受け取ることはありません。

任意のヒント?どうも ;)

4

2 に答える 2

3

iOS5 以降、viewWillAppear と viewWillDisappear の呼び出しが明らかに変更されました。したがって、何が起こるかに関係なく、iOS4 で起こっていることに依存できるのであれば、iOS5 で別の方法で動作するはずはありません。それは私にとって非常に奇妙です、それは試行錯誤のことになりました!

-viewWillAppear は、 -viewWillDisappear が以前に呼び出された場所でのみ呼び出されることが保証されていますが、ほとんどのモーダル ビュー/ウィンドウではそうではないようです。そして、それはおそらく通知センターの問題であり、モーダルウィンドウなどとして扱われている可能性があります!

残念ながら、私はあなたのための良いヒントを持っていません!

通知センターが閉じられたときに applicationDidBecomeActive が呼び出されているかどうかを確認し、アプリデリゲートを介してロジックを接続することができます。

- (void)applicationDidBecomeActive:(UIApplication *)application

iOS アプリ プログラミング ガイドから:

iOS 5 では、バナーを表示する通知は、アラートベースの通知のようにアプリを非アクティブ化しません。代わりに、バナーはアプリ ウィンドウの上端に沿って配置され、アプリは以前と同様にタッチ イベントを受け取り続けます。ただし、ユーザーがバナーをプルダウンして通知センターを表示すると、アラート ベースの中断が発生したかのように、アプリは非アクティブ状態に移行します。ユーザーが通知センターを閉じるか、別のアプリを起動するまで、アプリは非アクティブな状態のままです。この時点で、アプリは適切なアクティブ状態またはバックグラウンド状態に移行します。ユーザーは設定アプリを使用して、バナーを表示する通知とアラートを表示する通知を構成できます。

于 2012-12-03T13:01:23.627 に答える
1

AppDelegate ApplicationDidBecomeActive メソッドを使用して回避策を見つけました。その後、私は手動で[selectedViewController viewWillAppear:YES];:)を呼び出しました

于 2012-12-03T14:29:00.750 に答える