导航栏更改高度

当我把我的UIViewController从我以前的控制器中推到屏幕上时,它会改变这个变化。 但是,当它完成加载它的大小我的导航栏和跳跃转换使它看起来不好。 我怎样才能解决这个问题? 我所做的只是在viewWillAppear隐藏控制器A中的导航栏,并在viewDidLoad中的控制器B中显示它。

在这里输入图像说明

好的解决了它。 在控制器B(我推动的视图控制器)的viewDidLoad中添加以下内容:

 UINavigationBar *navigationBar = self.navigationController.navigationBar; [navigationBar setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; [navigationBar setShadowImage:[UIImage new]]; 

然后在你的UIViewController的XIB在导航栏上设置一个高度约束,并将其设置为68(从testing实际的线似乎落在68和69之间)。 丝绸般光滑。

编辑:如果有人有任何更好的想法,请添加他们。 我将不得不修改这个解决scheme的屏幕旋转,所以它不完美。

你可以在你的控制器中做这样的事情:

 - (void)viewWillAppear:(BOOL)animated { [self.navigationController setNavigationBarHidden:YES animated:animated]; [super viewWillAppear:animated]; } - (void)viewWillDisappear:(BOOL)animated { [self.navigationController setNavigationBarHidden:NO animated:animated]; [super viewWillDisappear:animated]; }