2011-01-01 11 views
3

Ich benutze three20 Rahmen und versuchen, die obere Naivagierungsleiste vom Standard zu UIStatusBarStyleBlackOpaque zu ändern.Navigationsleiste Stil ändern in * AppDelegate.m

habe ich versucht, viele Dinge in vielen Orten verwenden, aber es scheint nicht zu funktionieren:/

ich in meinem Haupt * appdelegate.m und dann in einer anderen „page1.m“

Ich versuchte‘ ve verwendet, um die in der unten stehenden appdelegate.m

navigator.rootViewController.navigationController.view.backgroundColor = [UIColor redColor]; 
navigator.rootViewController.navigationController.navigationBar.backgroundColor = [UIColor redColor]; 
navigator.rootViewController.navigationItem.titleView.backgroundColor = [UIColor redColor]; 
navigator.rootViewController.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque; 
navigator.rootViewController.navigationController.topViewController.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque; 
navigator.rootViewController.navigationController.navigationBar.tintColor = [UIColor blackColor]; 
navigator.rootViewController.navigationController.navigationBar.translucent = YES; 

ich verwendet habe, die in der unten stehenden page1.m

self.statusBarStyle = UIStatusBarStyleBlackOpaque; // This works! but the below doesnt 
self.navigationBarStyle = UIBarStyleBlackOpaque; 
self.navigationController.navigationBar.backgroundColor = [UIColor redColor]; 
self.navigationItem.titleView.backgroundColor = [UIColor redColor]; 
self.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque; 
self.navigationController.navigationBar.tintColor = [UIColor blackColor]; 
self.navigationController.navigationBar.translucent = YES; 

Was mache ich falsch?

Dank

EDIT

auch versucht, die folgenden und noch nicht

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
self.navigationBarStyle = UIBarStyleBlackOpaque; 

und

navigator.rootViewController.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 
navigator.rootViewController.navigationController.topViewController.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 

/EDIT2

Debuggen funktionierten geben Sie mir nicht meine Ergebnisse, meiner .m-Datei ist dies, wie es heisst

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
    self.title = @"MyTitle"; 
NSLog(self.navigationController.navigationBar.topItem.title);//DIDNT WORK 
NSLog(self.navigationItem.title);//Worked 

Antwort

4
self.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque; 

sein sollte:

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; 

// EDIT: zum Debuggen Sie alle

anmelden können
*.navigationBar.topItem.title 

und sehen Sie, ob es Ihren aktuellen Titel ausgibt. Wenn nicht, ist es der falsche Navigationscontroller.

+0

und das gleiche in Ihrem AppDelegate;) –

+0

Versuchte dies, immer noch nicht funktioniert: (, bearbeiteter oberer Beitrag, um dies zu reflektieren. Danke für die Hilfe obwohl – user370507

+0

sogar für self.navigationBarStyle? –

0

UIStatusBarStyleBlackOpaque eine Konstante ist, die Statusleiste, die die schwarze oder graue Ding auf dem oberen Rand des Bildschirms ist, um Stil , die Zeit zeigt, Empfang, Akkuladung usw.

Sie es

[[UIApplication sharedApplication] setStatusBarStyle:...] 

wie zum ändern einer Navigation Leiste ändern, versuchen, die Dinge, die Sie eins nach dem o aufgeführt ne, und stellen Sie sicher, es nicht zu früh zu tun, d. h. nicht bevor der View-Controller geladen und initialisiert wurde.

Ein guter Platz für diese Dinge ist Ihrer Ansicht Controller -(void)viewDidLoad

+0

Danke, ich die Statusänderungen, biss dich auf die Navigationsleiste doesnt ändern.Ich bin 100% sicher, dass ich es als letzte Sache geladen habe (auch nachdem es den Titel für die Navigationsleiste setzt) ​​und funktioniert immer noch nicht – user370507

0

Dies kann, was Sie suchen ... (stellen Sie sicher, mit dem den Farbton ändern):

CGFloat version = [[[UIDevice currentDevice] systemVersion] floatValue]; 
//NSLog(@"version %f", version); 
if (version <= 6.1) { 
    //NSLog(@"setting navbar style to black"); 
    [self.navigationController.navigationBar setBarStyle:UIBarStyleBlackOpaque]; 
    self.navigationController.navigationBar.tintColor = [UIColor blackColor]; 
}