2014-11-20 10 views
6

Durch alle Lösungen für ähnliche Fragen, habe ich versucht, die statusBar mit einer Tipp-Geste anzuzeigen/zu verbergen.Wie kann ich die Statusleiste auf einem pageViewController mit tap Geste (iOS8/Swift) ein-/ausblenden

Ich habe View controller-based status bar appearance = NO in den Plist gesetzt.

Ich habe den folgenden Code in meinem DataViewController (Seite View-Controller) versucht und in den RootViewController:

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

und es funktioniert nicht.

Dies ist in eine UITabBarController eingebettet, würde das einen Unterschied machen?

Auch ich war in der Lage zu bekommen die im Anschluss an die statusBar vom RootViewController zu verstecken:

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

Aber die DataViewController nicht einmal diese Funktion aufrufen, und war nur in der Lage dauerhaft auf diese Weise zu verstecken, eher als es ein-/ausschalten.

Irgendwelche Ideen?

+0

Das sollte funktionieren - sind Sie sicher, dass die Methode, die 'setStatusBarHidden' aufruft, aufgerufen wird? –

+0

Haltepunkt wird dort getroffen, ja. –

Antwort

3

Ich habe es im Code versucht, alles funktioniert gut für mich. Stellen Sie sicher, dass View controller-based status bar appearance auf NO eingestellt ist. Und es gibt keine Notwendigkeit, prefersStatusBarHidden() zu überschreiben.

+0

Ich möchte in der Lage sein, die Statusleiste auf eine Tippgeste zu zeigen/zu verstecken, wird das nicht einfach alles ausblenden? –

+0

Entschuldigung, missverstanden Ihre Frage. Ich habe es in meinem Code versucht, und alles funktioniert gut. Bitte sehen Sie meine aktualisierte Antwort. – liuyaodong

+0

wo rufst du das an? in DataViewController? oder RootViewController? –

0

wenn Sie UIPageViewController dann sollten Sie diesen Code verwenden, in dem RootViewController

, wenn Sie einen navigationController haben es zu

auf sie ViewDidLoad()

self.navigationController?.hidesBarsOnTap = true

und verwenden diese Methode verstecken um den Statusbalken zu verbergen oder anzuzeigen, basierend darauf, ob der navigationBar ausgeblendet ist oder nicht

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