2

バグのある動作のように見えます。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;
}

ただし、ステータスバーが重なってしまいます。

重なった

ここで、フレームを手動で修正するコードを追加すると、ステータス バーに奇妙な色のオーバーレイが残り、ナビゲーション バーの下に黒い隙間ができます。何を与える?

まだ間違っている

4

0 に答える 0