一、某个 ViewController 出现隐藏 NavigationBar
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:NO]; } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; [self.navigationController setNavigationBarHidden:NO animated:NO]; }
二、调整 NavigationBar 高度
1、介绍
1) 默认是 44 个像素点。
2、使用
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title = @"AAAAA"; UIBarButtonItem* leftBarButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Action_Moments.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(onclickBackBarButton)]; self.navigationItem.leftBarButtonItem = leftBarButton; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; CGRect rect = self.navigationController.navigationBar.frame; rect.size.height = 100.0f; self.navigationController.navigationBar.frame = rect; [self.navigationController.navigationBar setTitleVerticalPositionAdjustment:-40.0f forBarMetrics:UIBarMetricsDefault]; // [self.navigationItem.backBarButtonItem setBackgroundVerticalPositionAdjustment:-40.0f forBarMetrics:UIBarMetricsDefault]; // 对系统自带的 backBarButton 不起作用 [self.navigationItem.leftBarButtonItem setBackgroundVerticalPositionAdjustment:-40.0f forBarMetrics:UIBarMetricsDefault]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; CGRect rect = self.navigationController.navigationBar.frame; rect.size.height = 44.0f; self.navigationController.navigationBar.frame = rect; }
注意:
1) 如果使用系统默认的 backBarButton 是不能调整高度的。
2) 只有自定的 barButtonItem,而且使用以下初始化,才可以调整其高度。
- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action