6
アプリがバックグラウンドから戻ったときにviewWillAppearが呼び出されないのはなぜですか?
アプリを作成していて、ユーザーが電話で話しているときにアプリを見ている場合は、ビューを変更する必要があります。 私は次のメソッドを実装しました: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; NSLog(@"viewWillAppear:"); _sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height); } ただし、アプリがフォアグラウンドに戻ったときに呼び出されていません。 私は実装できることを知っています: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil]; しかし、私はこれをしたくありません。すべてのレイアウト情報をviewWillAppear:メソッドに入れて、考えられるすべてのシナリオを処理できるようにしたいのです。 私はviewWillAppear:をapplicationWillEnterForeground:から呼び出そうとさえしましたが、その時点で現在のビューコントローラがどれであるかを正確に示すことができません。 誰かがこれに対処する適切な方法を知っていますか?私は明白な解決策を見逃していると確信しています。