我将UINavigationViewController嵌入到父视图控制器中,如下所示:
-(void)presentChildController:(UINavigationViewController *)childController {
UIView *formView = childController.view;
formView.alpha = 0.0;
[self.view addSubview:formView];
[UIView animateWithDuration:0.5 animations:^{
currentController.view.alpha = 0.0;
formView.alpha = 1.0;
} completion:^(BOOL finished) {
[currentController.view removeFromSuperview];
[currentController willMoveToParentViewController:nil];
[currentController removeFromParentViewController];
}];
[self addChildViewController:childController];
[childController didMoveToParentViewController:self];
currentController = childController;
}
如下所示,navigationBar高度不正确。
单击其中一个寄存器或Recover,将UINavigationViewController替换为另一个。第二个控制器使navigationBar正确。换回来,第一个也自行修复。这是第一次出错。我试过了[childController setNeedsStatusBarUpdate]
但是没有效果。
childControllers都以相同的方式创建。 我不知道下一步该尝试什么。有什么想法吗?需要任何其他信息吗?
[更新]:导航栏似乎是正确的高度。但是,它包含一个名为_UINavigationBarBackground的东西(如视图heirarchy中所示),它被设置为错误的高度。由于导航栏由UINavigationViewController控制,因此对此的任何更改似乎都是不允许的。 [更新]:即使是简单的旋转也会导致UI自行纠正。