2011年7月25日月曜日

UIImagePickerControllerでカメラを表示するとViewが破棄される

とある画面からUIImagePickerControllerをカメラモードで起動した後に戻ってくると、その画面が初期化されてしまう、ということがあります。
ユーザー操作で設定情報を覚えていたのにカメラから戻ってきた途端に初期化されて忘れてしまう、ということになってしまう困ったぞ、と。

このときデバッグで起動するとコンソールに「Received memory warning」というメッセージが出ていて、これはメモリ警告が発生したことを表しています。メモリを使い過ぎ、ということなのでiOSはviewを破棄してしまいます。なので、カメラから戻って来たときにviewの生成から始まってしまい初期化されてしまう、という現象。

メモリ警告は「didReceiveMemoryWarning」というメソッドで通知されるので、ここで必要な情報は別領域に退避してやって、再生成時に復元してやる必要があります。

0 件のコメント:

コメントを投稿