it-swarm.com.de

Bei iOS8 blendet die Anzeige meiner App im Querformat die Statusleiste aus, unter iOS 7 wird jedoch die Statusleiste in beiden Ausrichtungen angezeigt

Ich möchte, dass die Statusleiste in iOS 8 in beiden Ausrichtungen angezeigt wird. es wird richtig in iOS 7 angezeigt.

navigationController.isNavigationBarHidden gibt NEIN zurück.

Warum macht iOS 8 das?

41
Tim Nuwin

Versuche dies

Fügen Sie den folgenden Code in didRotateFromInterfaceOrientation hinzu.

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

EDIT
KEIN NOTWENDIGKEIT, CODE IN ALLEN VIEW CONTROLLER ZU SCHREIBEN
Setzen Sie View controller-based status bar appearance in NO auf plist und fügen Sie den folgenden Code in viewDidLoad des Root-View-Controllers hinzu.

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

Demo-Projekt
https://www.dropbox.com/s/uumneidk4wom5md/demoStatusBar.zip?dl=0

59
Jageen

Versuchen Sie folgende Methode, um die Statusleiste im Querformat in iOS 8 anzuzeigen

- (BOOL)prefersStatusBarHidden {
    return NO;
}

Schnelle Version

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

Swift 3, Xcode 8, iOS 10,/* ViewController.Swift * /

override var prefersStatusBarHidden: Bool {
        return false
    }
49
Vidhi

Jageens Lösung ist wahrscheinlich die beste, mit nur einer geringfügigen Änderung, d. H. Anstelle von viewDidLoad ist es besser, application:didFinishLaunchingWithOptions: zu verwenden.

Es ist im Grunde ein zweistufiger Prozess: 

1). Setzen Sie in der Info.plist-Datei Ihres Projekts "Anzeige der Controller-Statusleiste anzeigen" auf NO. 

2). Erzwingen Sie den Status der ausgeblendeten Statusleiste in application:didFinishLaunchingWithOptions: mit dem folgenden Code auf NEIN:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

Und voila!

Hinweis: Es ist wichtig, beide setStatusBarHidden:withAnimation-Anweisungen zu verwenden, um den Status der Statusleiste zu erzwingen.

9
Mustafa

Dies ist kein Problem, sondern eine Funktion von iOS 8. Die Statusleiste wird in iOS 8 im Querformatmodus ausgeblendet, selbst Apples Anwendungen weisen dasselbe Verhalten auf.

5
Ganesh Guturi

Ich hatte das gleiche Problem! Das Problem wurde dadurch behoben, dass dies zu viewDidLoad hinzugefügt wurde

  [self setNeedsStatusBarAppearanceUpdate];

Und das zur Umsetzung selbst

-(BOOL)prefersStatusBarHidden{
    return NO;
}
5
serg_ov

Sie halten uns erwerbstätig, indem sie uns mehr Arbeit geben.

oder...

Sie haben andere Änderungen vorgenommen, die dazu führen, dass Bits mehr Platz beanspruchen als früher. Mit iOS 7 und dem Aufkommen von Dingen wie dem "Top Layout Bar Guide", der einfachen Verfügbarkeit der Statusleiste im Bildschirm "Nach unten streichen", kann die Leiste der Statusleiste wieder nutzbar gemacht werden, und andere kleine Hinweise prognostizieren die Statusleiste als standardmäßiger Bestandteil der Benutzeroberfläche auslaufen.

Es gibt auch eine Menge Buzz über neue Gerätegrößen, aufgrund der Änderungen, die in iOS 8 vorgenommen wurden, um das Codieren für eine Reihe unterschiedlicher Größen zu vereinfachen.

Es ist reine Spekulation, aber ich denke nicht, dass die Statusleiste in iOS 8 wieder angezeigt wird.

4
DBD

Swift 3

override func viewDidLoad() {
        super.viewDidLoad()
        UIApplication.shared.setStatusBarHidden(true, with: .none)
        UIApplication.shared.setStatusBarHidden(false, with: .none)
///
    }

und fügen Sie in Info.plist folgendes hinzu:

UIViewControllerBasedStatusBarAppearance boolescher Wert NO

2
Vyacheslav

Swift 3 (Stand vom 2. Juni 2017)

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var prefersStatusBarHidden : Bool {
    return false
}
1
BennyTheNerd

Wir haben das Problem behoben, indem wir die obigen Schritte befolgen und sicherstellen, dass sowohl die linke als auch rechte Landschaft aktiviert sind.

Klicken Sie unter Projekt/Ziel/Bereitstellungsinformationen

enter image description here

0
StackRunner