Frage

Ich habe Kontrolle eine Navigation zwischen den Ansichten in meiner Anwendung zu wechseln. Aber einige der Ansichten nicht haben sollten ‚Zurück‘ (die vorherige Titel) Taste. Irgendwelche Ideen, wie die Zurück-Taste zu verbergen?

War es hilfreich?

Lösung

Objective-C:
    self.navigationItem.hidesBackButton = YES;

Swift:
    navigationItem.hidesBackButton = true

Andere Tipps

Der beste Weg ist, diese zu kombinieren, so wird es die Zurück-Taste verbergen, auch wenn Sie es manuell einrichten:

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

verbergen Zurück-Taste mit Balg Code ...

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

oder

[self.navigationItem setHidesBackButton:YES];

Auch wenn Sie benutzerdefinierte haben UINavigationBar dann brüllen Code versuchen

self.navigationItem.leftBarButtonItem = nil;

Verwenden Sie den Code:

 self.navigationItem.backBarButtonItem=nil;

Swift :

Fügen Sie diese auf der Seite Controller

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

In der Funktion viewDidLoad des UIViewController verwenden Sie den Code:

self.navigationItem.hidesBackButton = YES;

Vergessen Sie nicht, dass Sie es auf das Objekt aufrufen müssen, die die nav-Controller hat. Zum Beispiel, wenn Sie nav-Controller verfügen über eine Tab-Leiste Controller mit einem RootViewController drückt, ruft self.navigationItem.hidesBackButton = YES auf dem RootViewController wird nichts tun. Sie würden tatsächlich self.tabBarController.navigationItem.hidesBackButton = YES verlangen

Vergessen Sie nicht, dass wir die Folie haben Geste jetzt zurück. Wahrscheinlich wollen Sie dies auch entfernen. Vergessen Sie nicht, es zu ermöglichen, wieder, wenn nötig.

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

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

Fügen Sie diesen Code in Ihrem View-Controller

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

Für mich keine der oben genannten zu arbeiten schien, hatte es keine visuelle Wirkung. Ich bin mit Storyboards mit einer Ansicht, die „embedded“ in einer Navigationssteuerung wird.

ich auf Code-Ebene dann meine MenuItems hinzufügen und aus irgendeinem Grunde die „backbutton“ ist sichtbar, wenn visuell die Ansichtshierarchie Debuggen, und mein menuItem Symbol unterhalb der unsichtbaren „Zurück-Button“ angezeigt.

habe ich versucht, die Einstellungen, wie bei den verschiedenen Hook-Methoden vorgeschlagen und hatten keine Wirkung. Dann habe ich versucht, einen brutalen Ansatz und Iterierte über die Subview, die auch keine Wirkung hatten.

Ich inspizierte meine Symbolgrößen und schien in Ordnung zu sein. Nach dem Hinweis auf ihn Apfel Human Interface Guideline bestätigte ich meine Icons korrekt sind. (1 Pixel kleiner in meinem Fall 24px 48px 72px).

Das seltsamste Teil dann ist die tatsächliche fix ...

Beim Hinzufügen des BarButton Artikels gibt ihm einen Titel mit mindestens einem Zeichen , In meinem Fall ein Leerzeichen.

hofft, dass dies hilft jemand.

//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];

Es funktioniert für mich nicht in allen Fällen, wenn ich gesetzt

self.navigationItem.hidesBackButton = YES;

in viewWillAppear oder ViewDidLoad, aber funktionierte perfekt, wenn ich es gesetzt in init des Viewcontroller.

try this one - self.navigationController?.navigationItem.hidesBackButton = true

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top