ビューBにセグされたテーブルビューAがあります。Aでは、上部にナビゲーションバーがあり、下にテーブルがあります。A のテーブルの行を押すと、B が押されます。B の viewWillAppear には、次のコードがあります。
-(void)viewWillAppear:(BOOL)animated
{
self.wantsFullScreenLayout = YES;
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
}
これにより、ビューが拡張され、ステータス バーの下に Nav バーと UIView が重なるようになります。私もviewWillDisappearを持っています
-(void)viewWillDisappear:(BOOL)animated
{
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
// back button was pressed. We know this is true because self is no longer in the navigation stack.
self.wantsFullScreenLayout = NO;
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbar_bg.png"] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.translucent = NO;
}
}
そのため、ユーザーが戻るボタンを押すと、ビューとナビゲーション バーが重ならないようにフルスクリーン モードが取り消されます。問題は、戻るボタンを押して前の画面 A が表示されると、テーブル ビューがナビゲーション バーと重なって表示されることです。A の willViewAppear に self.wantsFullScreenLayout = NO を入れようとしましたが、役に立ちませんでした。テーブルビューを縮小してナビゲーションバーの下に配置するべきではありませんか? wearg とは何か、この問題を解決する方法を教えてもらえますか?
前もって感謝します!