我遇到了看起来像错误的行为。我有一个 UINavigationController,其中包含一个 tabBarController。那个tabBarController有5个以上的tab,所以有一个more按钮,用来加载MoreController的navigationController。当然,这会创建嵌套的导航控制器,所以我想隐藏其中一个导航栏。
我通过使我的 ApplicationDelegate 成为 UINavigationControllerDelegate 来做到这一点:
[[tabBarController moreNavigationController] setDelegate:[UIApplication sharedApplication].delegate];
并实施:
(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
navigationController.navigationController.navigationBarHidden = YES;
}
但是,我最终将状态栏重叠:
现在,如果我添加一些代码来手动修复框架,状态栏上仍然有一些奇怪的颜色覆盖,现在导航栏下方有一个黑色间隙。是什么赋予了?