我有一个带有主页的应用程序是一个隐藏的导航栏,当我从带有导航栏的子页面返回到这个主页时,因为我将导航设置在主页方法中隐藏:-(void)viewWillAppear,我发现一个黑框会出现动画,如何避免呢?非常感谢!!!
问问题
2325 次
5 回答
14
Ok , I find the answer:
self.navigationController.view.backgroundColor = [UIColor redColor];
于 2012-04-12T03:42:26.650 回答
7
这可以解决问题而不会破坏颜色,这可能导致导航控制器的颜色错误。
只需在 viewWillAppear 中将其设置为动画即可:)
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
如果您使用导航控制器返回页面,请将 Animation 设置为 NO
- (IBAction)backButtonClicked:(id)sender {
[self.navigationController setNavigationBarHidden:NO animated:NO];
[self.navigationController popToRootViewControllerAnimated:YES];
}
于 2015-11-03T14:08:37.113 回答
2
如果在选项卡之间切换时发生在选项卡控制器应用程序中,这可能会对某人有所帮助
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if self.navigationController?.visibleViewController != self {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
}
于 2018-03-14T11:35:14.847 回答
0
对于 Swift3.0
在第一个视图控制器中
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
在第二个 ViewController
func backButtonPressed() {
self.navigationController?.setNavigationBarHidden(false, animated: false)
self.navigationController?.popViewController(animated: true)
}
于 2017-05-18T04:11:20.193 回答
0
在调用后调用 layoutSubviews() 以隐藏或显示导航栏:
[self.navigationController.view layoutSubviews];
于 2021-04-13T02:58:58.483 回答