删除导航栏而不删除颜色Swift

时间:2016-08-06 06:48:57

标签: ios swift cocoa-touch

我正在使用XCode 7.3 for iOS 9.3在Swift 2中编写应用程序,我有一个搜索控制器,它是导航控制器的一部分。我想隐藏这个特定视图的导航栏,但是当我这样做时,状态栏的背景颜色在屏幕的最顶部变为白色,我想保持它的颜色。有没有办法在隐藏导航栏的同时这样做? 这是一张供参考的图片:Search View

3 个答案:

答案 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,无论你想要什么。