【发布时间】:2010-12-09 16:59:49
【问题描述】:
当我使用导航控制器推送时,如何在 UIViewcontroller 中隐藏顶部栏 pushViewController ? 请问有什么帮助吗?
【问题讨论】:
标签: iphone objective-c uinavigationcontroller uinavigationbar
当我使用导航控制器推送时,如何在 UIViewcontroller 中隐藏顶部栏 pushViewController ? 请问有什么帮助吗?
【问题讨论】:
标签: iphone objective-c uinavigationcontroller uinavigationbar
将此代码放在要为其隐藏导航栏的视图控制器中。
- (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)
}
附:我发现如果你将动画设置为false,推送时会出现一个黑条。但是当它设置为true 时,它就像丝绸一样光滑!
【讨论】: