7

Hallo, hier ist mein Problem:StatusBar in searchController und searchResultsController Probleme: iOS 8

In meinem AppDeleagate der didFinishLaunchingWithOptions: Methode Ich habe eine Methode [self configureUINavigationControllerStlyle];, die die Statusleiste und die Navigationsleiste meiner App konfiguriert (ich habe UINavigationController und UITabbarController arbeiten zusammen in meiner App).

-(void) configureUINavigationControllerStlyle { 

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 

UINavigationController *navigationController = (UINavigationController *)[tabBarController.viewControllers objectAtIndex:0]; 

navigationController.navigationBar.translucent = NO; 

[[UINavigationBar appearance] setBarTintColor: [CustomColor getAwesomeColor:@"colorBlue3_1"]]; 

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 

[[UINavigationBar appearance] setTitleTextAttributes:@{ 
NSForegroundColorAttributeName : [UIColor whiteColor], 
NSFontAttributeName: [UIFont fontWithName:@"AvenirNext-DemiBold" size:17.0] 
}]; 

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

} 

auch in meinem info.plist i gesetzt: View-Controller-basierte Statusleiste Aussehen „NEIN“ zu

Alles hat gut funktioniert und alle Controller in meiner App haben ihre Statusleisten mit blauem Hintergrund und weiße Textfarbe. Aber nicht der Usearchcontroller und Uisearchresultscontroller.

Meine Wurzel Tableviewcontroller sieht wie folgt aus:

https://www.dropbox.com/s/oqcozos89x9yqhg/Screen%20Shot%202014-12-11%20at%2016.21.06.jpg?dl=0

I searchController und searchResultsController in meiner App integriert. Die Logik funktioniert gut, aber ich verstehe nicht, wie Sie mit Statusleiste Aussehen in SearchController und SearchResultController umgehen. Sie verwenden keine Stile für die Statusleiste, die ich in meiner AppDelegate.m-Datei erstellt habe.

Meine searchController und searchResultsController sehen so aus (Statusleiste wurde weiß und die Textfarbe der Statusleiste wurde ebenfalls weiß, aber ich brauche meine Statusleiste die gleiche Farbe wie in meinem Home View Controller (blauer Hintergrund und weiße Textfarbe) .)

https://www.dropbox.com/s/26skdz7gvehmwl4/Screen%20Shot%202014-12-11%20at%2016.21.16.png?dl=0

Ein weiterer Fehler: Wenn ich

navigationController.navigationBar.translucent = NO; 

in meinem AppDelegate - es "springen oder Strecken nach unten" meiner Heimat tablevi verursacht ew im Moment der Rückkehr von Detailansicht Controller nach der Verwendung von Search Controller. Wenn ich keine durchsichtige Eigenschaft einstelle - es gibt kein "Springen".

Vielleicht jemand weiß, wie, dass die Statusleiste Farben Probleme zu beheben, wenn searchController in iOS 8.

mit der Wenn ich Standardfarben verwenden (fügen Sie keine Änderungen an meinem AppDelegate), alles funktioniert gut, aber Ich brauche benutzerdefinierte Statusleistenfarben in meiner App.

+0

es ein Fehler ist. Siehe meine Problemumgehung: http: // stackoverflow.com/a/30225864/235297 –

Antwort

0

Wenn Sie weißen Text in der Statusleiste, in Ihrem info.plist stellen Sie sicher, Sie haben Status bar style Set Opaque black style oder Transparent black style.

Das sollte mit dem Rest Ihres Codes funktionieren.

6

Sie müssen UISearchController Unterklasse und überschreiben preferredStatusBarStyle wie so:

- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
    return UIStatusBarStyleLightContent; 
} 
+1

Wenn Sie alles zur UISearchController-Unterklasse hinzufügen, können Sie auch 'preferredStatusBarStyle' als Erweiterung hinzufügen. – MathewS

+4

Ja, Erweiterungsarbeiten '' 'Verlängerung UISearchController { \t public override func preferredStatusBarStyle() -> UIStatusBarStyle { \t \t Rückkehr .LightContent \t} }' '' –