如何隐藏导航栏,当我从导航控制器推?
答
将此代码放入您想要隐藏导航栏的视图控制器中。
- (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];
}
答
对于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];
答
这里的如何在Swift 3:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
P.S.我发现如果将动画设置为false
,则推动时会出现黑条。但是当它被设置为true
它丝绸般光滑!
我想添加到这个问题,如何让它隐藏/显示,当用户点击它在哪里。即:像在照片应用程序。 – JoePasq
当您需要隐藏导航栏时,您只需将该setNavigationBarHidden调用放在任何位置即可。 –
好一个这对我有用。 –