答え、dbarkerからポインタへの感謝を決定し、ビューがdidReceiveMemoryWarning
のデフォルトの実装は、ビューをアンロードした後に再ロードされたときに-willRotateToInterfaceOrientation:duration:
と-willAnimateRotationToInterfaceOrientation:duration:
、などのView Controllerの回転メソッドは、呼び出されることはないということです。私はそれがアプリの起動時に異なるだろう、なぜさっぱりだが、私は私がやったこと
がそうのように、didReceiveMemoryWarning
でYES
に、unloadedByMemoryWarning
という名前のブールIVARを、設定した回避策を持っています:
- (void) didReceiveMemoryWarning {
unloadedByMemoryWarning = YES;
[super didReceiveMemoryWarning];
}
をそのフラグがtrueの場合
はその後、viewDidLoad
で、私はNO
にそれを設定し、回転方法を自分自身を呼び出します。
if (unloadedByMemoryWarning) {
unloadedByMemoryWarning = NO;
[self willRotateToInterfaceOrientation:self.interfaceOrientation duration:0];
[self willAnimateRotationToInterfaceOrientation:self.interfaceOrientation duration:0];
[self didRotateFromInterfaceOrientation:self.interfaceOrientation];
}
はちょっと私はこれをしなければならないことを吸うが、それは私が仕事をして、そして今'mあまりにも多くのメモリを使用するためにiOSによって殺される心配はあまりありません。
ビューはビュー階層外(UIViewControllerビューのサブビューではありません)ではありませんか? – dstnbrkr
@barker - いいえ、実際はアプリのメインビューです。 – theory
@barkerああ、もっと慎重に見て、私はそれが適切に回転されていないビューのサブビューだと思う。ペン先に含まれるサブビューは適切に回転されます。並べ替えHrm。 '-willAnimateRotationToInterfaceOrientation:duration:' メソッドで何かが起きる可能性があります。回転がアニメーション化されていないため、呼び出されないことがありますか? – theory