我正在尝试在包含UISearchController的视图中更改导航栏的颜色。我以前在appDelegate中为整个应用程序设置了导航栏的颜色,但我希望这个视图导航栏有不同的颜色。问题是,我不知道放置代码的功能,以便它将覆盖appDelegate代码。例如,viewDidLoad和viewWilAppear在视图首次加载时不会更改颜色,只有在我输入和取消searchController之后。我应该放置以下哪个功能?
UINavigationBar.appearance().backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)
答案 0 :(得分:6)
有两种方法可以做到这一点。您可以修改在AppDelegate中为整个应用程序设置的外观代理,也可以修改特定屏幕的单个导航栏。
当您关闭视图时 - 您需要在viewWillDisappear中重置barTintColor。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#mainNavBar">
<span class="icon-bar"> </span>
<span class="icon-bar"> </span>
<span class="icon-bar"> </span>
</button>
<a class="navbar-brand">Brand Name</a>
</div>
<div class="collapse navbar-collapse" id="mainNavBar">
<ul class="nav navbar-nav">
<li class="active">
<a href="#">About Us</a>
</li>
<li>
<a href="#">Projects</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
答案 1 :(得分:0)
您应该在viewWillAppear
中更改导航控制器的条形颜色,并在关闭视图时将其更改回来,而不是直接更改导航栏的颜色。