简体   繁体   中英

How can I show/hide the status bar on a pageViewController using tap gesture (iOS8 / Swift)

Looking through all the solutions given to similar questions, I have been trying to get the statusBar to show/hide with a tap gesture.

I have set View controller-based status bar appearance = NO in the plist.

I have tried the following code in my DataViewController (page view controller) AND in the RootViewController :

let app = UIApplication.sharedApplication()
app.setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.Fade)

and it doesn't work.

This is embedded in a UITabBarController , would that make a difference?

Also, I was able to get the following to hide the statusBar from the RootViewController :

override func prefersStatusBarHidden() -> Bool {
    return true
}

But the DataViewController does not even call this function, and was only able to hide it permanently this way, rather than toggle it on/off.

Any ideas?

I have tried it in code, everything works fine for me. Make sure that the View controller-based status bar appearance is Set to NO . And there is no needs to override prefersStatusBarHidden() .

if you using UIPageViewController then you should use this code in the RootViewController

if you have a navigationController it will hide it too

on ViewDidLoad()

self.navigationController?.hidesBarsOnTap = true

and use this method to hide or show the status Bar based on if the navigationBar is hidden or not

override func prefersStatusBarHidden() -> Bool {
        if self.navigationController?.navigationBarHidden == true {
            return true
        }
        else
        {
            return false
        }
   }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM