UIViewControllerの仕様

今日は、結構でかいサウンドファイルを読み込んで再生するとかいうプログラムを書いてたんだけど、何個かNavigationControllerにUIViewControllerを突っ込むと、いつの間にか表示してないViewが解放されていたりで困ったりした。

どうやらこれはUIViewControllerのデフォルトの挙動のようで、didReceiveMemoryWarningの実装がViewを解放するようになっているかららしい。

なので、ViewControllerのメンバの初期化はViewDidLoadでやっちゃいけない。Init系でやらないと、初期化コードが意図しないタイミングで走ってしまいます。viewDidLoadは複数回呼び出される可能性かあるよー

loadViewとの使い分けがいまいちわかってないけど、その辺はおいおい・・・

コメントを残す