UITabViewControllerとMemory Warning

表題の通りだが、UITabViewControllerのタブ上に乗せたViewから更にModalなViewを表示して、そこでMemory Warningを発生させるとタブ上のViewが描画されずに真っ黒になってしまうという現象に悩まされている。

どんな構成でも発生する訳では無く、UITabViewControllerを使ってそのタブ上からModalなViewをSegueを経由して表示した時に出ることまでは突き止めた。

1. UITabViewControllerで構成されるViewからModalなビューを表示

2. メモリ不足を起こす
シミュレータを使うと簡単にメモリ不足をシミュレートすることができる。

3. Modalなビューから戻ると元のView(UITabView上)が黒抜けになっている

日記ではお見せできない文字やアイコンがあるので分かり難いがこのように推移することで発生する。

Modal View表示時にMemory Warningが発生するとその下にある全てのviewControllerのviewDidUnloadデリゲートが呼ばれるのだが、そこでViewControlerが管理しているViewが解放されてしまっているらしい所までは解った。しかしどうやってそれを防ぐかが解らない。うーん。