我正在使用XCode 7.3 for iOS 9.3在Swift 2中编写应用程序,我有一个搜索控制器,它是导航控制器的一部分。我想隐藏这个特定视图的导航栏,但是当我这样做时,状态栏的背景颜色在屏幕的最顶部变为白色,我想保持它的颜色。有没有办法在隐藏导航栏的同时这样做? 这是一张供参考的图片:Search View
答案 0 :(得分:0)
self.searchController = UISearchController(searchResultsController:searchResultsController) self.searchController.searchResultsUpdater = searchResultsController self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.searchBar.searchBarStyle = .Minimal
答案 1 :(得分:0)
for particuler scrren的隐藏状态栏:
override func viewWillDisappear(animated: Bool) {
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .None)
}
override func viewWillAppear(animated: Bool) {
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: .None)
}
用于嵌入搜索控制器的导航使用以下代码:
self.searchController = UISearchController(searchResultsController: searchResultsController)
self.searchController.searchResultsUpdater = searchResultsController
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.searchBar.searchBarStyle = .Minimal
答案 2 :(得分:0)
状态栏的背景颜色在屏幕的最顶部变为白色,而NavigationBar是Hide,那时解决方案是在ViewController的viewDidLoad方法中添加一个带背景颜色的子视图。在ViewController的viewDidLoad方法中添加以下代码。
let viewStatusBarBG = UIView(frame: CGRectMake(0, 0, self.view.frame.width, 20))
viewStatusBarBG.backgroundColor = UIColor(red: 0.89, green: 0.22, blue: 0.37, alpha: 1.0)
self.view.addSubview(viewStatusBarBG)
设置backgroundColor,无论你想要什么。