我有三个视图的向下钻取层次结构,所有这些都嵌入在导航控制器中。我希望最后一个视图让导航栏保持半透明,但在返回前两个第一个视图时导航栏不是半透明的。我已经尝试在视图self.navigationController?.navigationBar.translucent = true;
func中实现viewDidLoad
代码,但没有用,它只是保持不变。我该怎么办?
答案 0 :(得分:0)
很抱歉,如果我不理解这个,但你想让半透明的酒吧再次消失并隐藏起来?如果是这种情况那么你应该将栏设置为隐藏在ViewWillDisappear()
中那应该可以解决你的问题!
答案 1 :(得分:0)
在上一个视图中
override func viewWillAppear(animated: Bool) {
self.navigationController?.navigationBar.translucent = true
}
override func viewWillDisappear(animated: Bool) {
self.navigationController?.navigationBar.translucent = false
}
答案 2 :(得分:-1)
您可以在程序中尝试此方法
请记住在- (void)viewWillAppear:(BOOL)animated
方法中执行此方法
如果您在程序中没有使用导航控制器,那么您将使用自己的导航栏替换self.navigationController
。
- (void)navigationBarInitializationWithTransparentOption:(BOOL)isAffirmative
{
//An optional statement below, just to make sure the navigationBar is in its place:
self.navigationController.navigationBarHidden = NO;//(or separate ".navigationBarHidden" to ".navigationBar.hidden")
//
//TO MAKE THE BACKGROUND OF THE CURRENT NAVIGATION BAR TRANSLUCENT:
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setTranslucent:isAffirmative];
//set NO in the following statement will leave the border of the navigation bar visible
self.navigationController.navigationBar.clipsToBounds = YES;
}