バグのある動作のように見えます。UINavigationController が 1 つあり、その中に tabBarController が含まれています。その tabBarController には 5 つ以上のタブがあるため、More ボタンがあり、MoreController ナビゲーション コントローラーをロードします。もちろん、ネストされたナビゲーション コントローラーが作成されるので、ナビゲーション バーの 1 つを非表示にします。
ApplicationDelegate を UINavigationControllerDelegate にすることでそれを行います。
[[tabBarController moreNavigationController] setDelegate:[UIApplication sharedApplication].delegate];
そして実装:
(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
navigationController.navigationController.navigationBarHidden = YES;
}
ただし、ステータスバーが重なってしまいます。
ここで、フレームを手動で修正するコードを追加すると、ステータス バーに奇妙な色のオーバーレイが残り、ナビゲーション バーの下に黒い隙間ができます。何を与える?