it-swarm.com.de

Wie kann ich die Zurück-Schaltfläche in der Navigationsleiste des iPhone ausblenden?

Ich habe eine Navigationssteuerung hinzugefügt, um in meiner App zwischen Ansichten zu wechseln. Einige Ansichten sollten jedoch nicht die Schaltfläche "Zurück" (vorheriger Titel) haben. Irgendwelche Ideen, wie man den Zurück-Knopf verstecken kann?

306
Chilly Zhong

Ziel c:
self.navigationItem.hidesBackButton = YES;

Schnell:
navigationItem.hidesBackButton = true

786
user8170

Am besten kombinieren Sie diese, sodass die Schaltfläche "Zurück" auch dann versteckt wird, wenn Sie sie manuell einrichten: 

self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;
36
Skrew

schaltfläche "Zurück" mit untenstehendem Code ausblenden ...

[self.navigationItem setHidesBackButton:YES animated:YES];

oder  

[self.navigationItem setHidesBackButton:YES];

Auch wenn Sie benutzerdefinierte UINavigationBar haben, versuchen Sie es mit dem folgenden Code

self.navigationItem.leftBarButtonItem = nil;
18
Paras Joshi

In Swift

Fügen Sie dies dem Controller hinzu  

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.setHidesBackButton(true, animated: false)
}
5
King-Wizard

Verwenden Sie den Code:

 self.navigationItem.backBarButtonItem=nil;
5
Gurpreet Singh

In der Funktion viewDidLoad des UIViewControllers verwenden Sie den Code:

self.navigationItem.hidesBackButton = YES;
3
indiefr

Vergessen Sie nicht, dass Sie es für das Objekt aufrufen müssen, das über den Nav-Controller verfügt. Wenn Sie zum Beispiel einen Nav-Controller auf einen Registerkarten-Controller mit einem RootViewController drücken, führt der Aufruf von self.navigationItem.hidesBackButton = YES auf dem RootViewController zu nichts. Sie müssten eigentlich self.tabBarController.navigationItem.hidesBackButton = YES anrufen

2
Tyler

Vergessen Sie nicht, dass wir jetzt die Folie zum Zurückführen haben. Wahrscheinlich möchten Sie dies auch entfernen. Vergiss nicht, es bei Bedarf wieder zu aktivieren.

if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
    self.navigationItem.hidesBackButton = YES;
}

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
2
Bruno Delgado

Fügen Sie diesen Code in Ihren View-Controller ein

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
1
Bhavsar1311

Es funktionierte nicht in allen Fällen für mich, wenn ich unterging 

self.navigationItem.hidesBackButton = YES;

in viewWillAppear oder ViewDidLoad, funktionierte jedoch einwandfrei, wenn ich es in init des viewControllers setze. 

1
Joe M

Für mich schien nichts von dem oben genannten zu funktionieren, es hatte keine visuelle Wirkung. Ich verwende Storyboards mit einer Ansicht, die in einen Navigationscontroller "eingebettet" ist.

Ich füge dann auf Codeebene meine menuItems hinzu und aus irgendeinem Grund ist die "backButton" sichtbar, wenn die Ansichtshierarchie visuell debugiert wird, und mein menuItem-Symbol wird unter der unsichtbaren "Zurück-Schaltfläche" angezeigt.

Ich habe die Einstellungen ausprobiert, wie bei den verschiedenen Hook-Methoden vorgeschlagen und das hatte keine Auswirkung. Dann versuchte ich eine brutalere Herangehensweise und wiederholte die Unteransicht, die ebenfalls keine Auswirkung hatte.

Ich überprüfte meine Icon-Größen und schien in Ordnung zu sein ... Nachdem ich auf die Apple Human Interface-Richtlinie Bezug genommen hatte, bestätigte ich, dass meine Icons korrekt sind. (1 Pixel kleiner in meinem Fall 24px 48px 72px).

Der seltsamste Teil ist dann der eigentliche Fix ...

Wenn Sie das BarButton-Element hinzufügen, geben Sie ihm einen Titel mit mindestens einem Zeichen , In meinem Fall ein Leerzeichen.

Hoffentlich hilft das jemandem.

//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX 
                                                                    style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];

[self.navigationItem setLeftBarButtonItem:leftButtonItem];
1
Wayne

versuchen Sie es mit diesem self.navigationController?.navigationItem.hidesBackButton = true

0
Ahil Rahesh

In c # oder Xamarin.ios ist this.NavigationItem.HidesBackButton = true;

0