dbarkerからのポインタのおかげで決定された答えは、デフォルトの実装がビューをアンロードした後にビューがリロードされたときに、とを含むビューコントローラの回転メソッドが呼び出されないということ-willRotateToInterfaceOrientation:duration:
です。アプリの起動時になぜ異なるのかわかりませんが、回避策はあります-willAnimateRotationToInterfaceOrientation:duration:
didReceiveMemoryWarning
私がしたことは、次のように、という名前のブールivarunloadedByMemoryWarning
をYES
inに設定することでした。didReceiveMemoryWarning
- (void) didReceiveMemoryWarning {
unloadedByMemoryWarning = YES;
[super didReceiveMemoryWarning];
}
次に、でviewDidLoad
、そのフラグがtrueの場合、に設定してからNO
、自分でローテーションメソッドを呼び出します。
if (unloadedByMemoryWarning) {
unloadedByMemoryWarning = NO;
[self willRotateToInterfaceOrientation:self.interfaceOrientation duration:0];
[self willAnimateRotationToInterfaceOrientation:self.interfaceOrientation duration:0];
[self didRotateFromInterfaceOrientation:self.interfaceOrientation];
}
ちょっとこれをしなければならないのは残念ですが、それは機能します。そして今では、メモリを使いすぎてiOSに殺される心配はありません。