web-dev-qa-db-ja.com

ナビゲーションコントローラーからプッシュするときにナビゲーションバーを非表示にする方法

IViewcontrollerでトップバーを非表示にする方法pushViewControllerを使用してナビゲーションコントローラーからプッシュする場合何か助けてください?

40
senthilMuthu

このコードを、ナビゲーションバーを非表示にするビューコントローラに配置します。

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

また、必要に応じて、これをここに固定することもできます。

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}
109
Ed Marty

Swiftで行う方法は次のとおりです。

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

追伸アニメーションをfalseに設定すると、プッシュに黒いバーが表示されることがわかりました。ただし、trueに設定すると、シルクのように滑らかになります。

11
dustinrwh

IOS 8の場合、この回避策でうまくいくかもしれません

CATransition* transition = [CATransition animation];
        transition.duration = 0.3;
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromRight;
        [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
        [self.navigationController setNavigationBarHidden:TRUE animated:FALSE];
        [self.navigationController pushViewController:productViewObj animated:FALSE];
        [productViewObj.navigationController setNavigationBarHidden:TRUE animated:FALSE];
        [productViewObj release];
0
Zahur