UINavigationController に新たな画面となる UIViewController をpushViewController
する前に、その UIViewController のhidesBottomBarWhenPushed
プロパティにYES を設定すればよい。以降の画面では自動的にツールバーが非表示になる。
前回やったtoolbarHidden
プロパティにYESを設定するやり方でも非表示にすることは可能だが、hidesBottomBarWhenPushed
プロパティを使うと、再度元の画面(ツールバーを隠す前の画面)に戻ったときに、自動でツールバーが表示されるようになる。
- (void)viewDidLoad { [super viewDidLoad]; self.title = @"TopView"; self.view.backgroundColor = [UIColor lightGrayColor]; // ツールバー表示 self.navigationController.toolbarHidden = NO; // ナビゲーションバーに次へボタン追加 UIBarButtonItem *btn1 = [[UIBarButtonItem alloc] initWithTitle:@"次へ" style:UIBarButtonItemStylePlain target:self action:@selector(performNextButtonAction)]; self.navigationItem.rightBarButtonItem = btn1; } - (void)performNextButtonAction { NextViewController *viewController = [[NextViewController alloc] init]; // 次の画面へ遷移する前に`hidesBottomBarWhenPushed`を YES にする viewController.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:viewController animated:YES]; }
hidesBottomBarWhenPushed
プロパティは、あくまでも画面遷移のタイミングでツールバーを隠すかどうかという設定。画面遷移後に、UINavigationController のtoolbarHidden
プロパティをNOに設定すると、そちらが優先されてツールバーは表示される。