UINavigationController without navigation bar?

后端 未结 6 1679
小蘑菇
小蘑菇 2020-12-07 15:01

I have a universal app, and on the iPad version I\'m using UISplitViewController to create an interface similar to the Mail app.

I was having trouble pu

相关标签:
6条回答
  • 2020-12-07 15:49

    Swift 4

    I hide it in viewWillAppear

         override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
    
            self.navigationController?.isNavigationBarHidden = true;
        }
    

    Then you can put it back when you push a segue (if you want to have the back button on the next view)

         override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
         {
            self.navigationController?.isNavigationBarHidden = false;
         }
    
    0 讨论(0)
  • 2020-12-07 15:51

    All these answers still leave a space at the top for the status bar - add this line to remove that as well:

    navController.navigationBar.isHidden = true
    navController.accessibilityFrame = CGRect.zero
    
    0 讨论(0)
  • 2020-12-07 15:55

    Swift 3 Programmatically

    self.navigationController.isNavigationBarHidden = true
    

    or

    self.navigationController.navigationBar.isHidden = true
    

    Note: I didn't see a difference between these two approaches testing on iOS 10.

    0 讨论(0)
  • 2020-12-07 16:02

    If you want no navigation bar, and you want the content to be adjusted up to where the navigation bar normally would be, you should use

    self.navigationController.navigationBarHidden = YES;
    

    This gives you a result like this:

    enter image description here

    Whereas self.navigationController.navigationBar.hidden = YES; gives you a space where the navigationBar should be. Like this:

    enter image description here

    0 讨论(0)
  • 2020-12-07 16:05

    In Xcode 4.3.2:

    1. Select the navigation controller in the storyboard
    2. Select the Attributes Inspector in the (right) Utilities panel
    3. Under the Navigation Controller category you have two check boxes:

      [] Shows Navigation Bar

      [] Shows Toolbar

    Worked for me...

    0 讨论(0)
  • 2020-12-07 16:07

    You should be able to do the following:

    self.navigationController.navigationBar.isHidden = true //Swift 5
    

    where self.navigationController is (obviously) an instance of UINavigationController. Seems to work for me, but I only briefly tested it before posting this.

    0 讨论(0)
提交回复
热议问题