i verstecken meine Navigation mit:ausblenden Navigationsleiste aber nicht die Zurück-Taste
[self.navigationController setNavigationBarHidden:YES animated:YES];
Aber ich brauche nicht die Zurück-Taste verstecken, ist es möglich?
i verstecken meine Navigation mit:ausblenden Navigationsleiste aber nicht die Zurück-Taste
[self.navigationController setNavigationBarHidden:YES animated:YES];
Aber ich brauche nicht die Zurück-Taste verstecken, ist es möglich?
nevan king ist richtig aber können Sie einfach das Hintergrundbild der Navigationsleiste ändern oder auf Null setzen. Wenn Sie es auf Null setzen oder ein transparentes BG-Bild bereitstellen, erzielen Sie den gewünschten Effekt.
Für iOS> = 5.0 Sie einfach das Aussehen einstellen könnte:
if([navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) // needed if iOS older than 5.0 is also supported
[navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
Sie tun können, wo immer Sie einen Zeiger auf Ihre Navigationsleiste haben. Z.B. innerhalb der viewDidLoad
Methode Ihrer ViewController
.
Für ältere iOS-Version benötigen Sie eine Abhilfe, indem eine Kategorie von UINavigationBar
und überschreiben die drawRect
Methode:
@implementation UINavigationBar (BackgroundImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @""];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
Beide Methoden kompatibel sind, wenn Sie alle iOS-Versionen unterstützen wollen.
Daher sollten Sie beachten, dass die Zurück-Taste das gleiche Hintergrundbild verwendet. Sie müssen also einen benutzerdefinierten erstellen.
UIImage *bgImageNormal = [UIImage imageNamed:@"backButtonImage.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: bgImageNormal forState:UIControlStateNormal];
button.frame= CGRectMake(0.0, 0.0, bgImageNormal.size.width, bgImageNormal.size.height);
[button addTarget:self action:@selector(navigationBarBackButtonTouchUpInside:) forControlEvents:UIControlEventTouchUpInside]; // your action method here
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = closeButton;
[closeButton release];
Dieser Code muss für jeden ViewController, den Sie in Ihre Navigationsleiste schieben, implementiert werden. Ein guter Platz dafür ist auch innerhalb der viewDidLoad
Methode.
Das ist meine Lösung, die erste ... wo steckt der Code? im Blick hat geladen? – Acunamatata
Ich habe die Antwort mit empfohlenen Orten für den Code aktualisiert. Die iOS 5-Methode und die benutzerdefinierte Zurück-Schaltfläche können überall dort sein, wo Sie Zugriff auf die navBar oder den viewController haben, den Sie dorthin schieben. Der vorläufige iOS 5-Workaround muss in einer eigenen Kategorie von UINavigationBar implementiert werden. – yinkou
Der Zurück-Button wird von der Navigationsleiste erstellt und ist immer ein Teil davon. Es ist also nicht möglich. Sie können die Navigationsleiste ausblenden und erneut anzeigen, wenn Ihr Benutzer den Bildschirm berührt (dies ist die Funktion der Fotos App, wenn Sie ein einzelnes Foto ansehen) oder eine Schaltfläche erstellen und dauerhaft oben links auf dem Bildschirm anzeigen. Sie können die Navigationsleiste auch teilweise transparent machen, so dass der darunter liegende Inhalt angezeigt wird.
Ich möchte den Wurf Schatten unter Navigationsleiste löschen ... es ist möglich – Acunamatata
Welcher Schatten? Ich bekomme keine .. –
Wenn Sie iOS 5 verwenden, können Sie das Aussehen der Navigationsleiste anpassen. Sehen Sie sich das WWDC Session 114 Video oder das "Custom Appearance for UIKit Controls" im iOS 5 Dokument an: https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS5.html#//Apple_ref/doc/uid/TP30915195-SW1 –
Vielleicht nein .. Weil zurück Knopf ist Teil der navigationbar Ich fürchte nein. –