Gewusst wie: ausblenden der Navigationsleiste ohne Folie-back-Fähigkeit
Ich habe einen UITableView und es hat eine Navigationsleiste(bekam von UINavigationViewController), es ist in der Lage, zurück zu gehen durch zurück schieben mit dem finger.
Versuchte ich zu verbergen, die nav-bar, aber halten Sie die slide-back-Fähigkeit, code:
- (void)viewWillAppear:(BOOL)animated {
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
Diese erfolgreich verbarg Sie die nav-bar, jedoch kann ich nicht mehr schieben wieder zurück zum letzten Bildschirm.
Gibt es eine Möglichkeit zum ausblenden der Navigationsleiste, aber halten Sie die slide-back-Fähigkeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Getestet mit Swift 2 die Lösung von @gabbler, wenn Sie
Swift 3.0
statt
den swipe-back-Geste funktioniert wie ein Charme!
viewWillAppear:
undviewWillDisappear:
zu deaktivierenUINavigationBar
in einem bestimmtenUIViewController
innerhalb einerUINavigationController
werden kann, eine wirklich gute Herausforderung, vor allem, wenn dabeiviewWillDisappear:
. Für diesen speziellen Fall verwenden wirsetNavigationBarHidden:animated:
aber dies deaktiviert auch dieinteractivePopGestureRecognizer
. In meinem speziellen Fall, ich weiß nicht, was diese Antwort sagt, weil es ist schwer und ziemlich buggy, animieren Sie diese Eigenschaft.self.navigationController?.navigationBar.isHidden = true
versteckt nicht die nav-Leiste in iOS 11/Swift-4.x; nurself.navigationController?.navigationBarHidden = true
tut.Fand die Lösung:
Und in .h-Datei, entsprechen UIGestureRecognizerDelegate
Verwenden
oder fügen Sie diese Zeile in viewWillAppear:
Scheint es die Interaktion nicht wirksam ist, durch das hinzufügen dieser Zeile und stellen Sie den view-controller entspricht den UIGestureRecognizerDelegate Protokoll, damit es funktioniert.
Stellen Sie sicher, dass:
Und:
Und:
Sollte es wie folgt angezeigt:
Swift 4.x-und iOS-11.4.
Dem @ - gabbler-Lösung noch funktioniert. Idk, sieht aus wie dieses eine UIKit bug ist, aber..
Verwenden Sie einfach:
für Xamarin Forms-ich war mit diesem Kampf also erstmal nicht NavigationRenderer erhalten Sie NavigationController null stattdessen PageRenderer:
Zinan Befestigungen Lösung in Swift 4.2 (gebt ihm Bitte upvote!):
Wenn ausblenden der Navigationsleiste nicht helfen, versuchen Sie, die rect der Navigationsleiste und sehen?
navBarBgFrame.Herkunft.y = - navBarBgFrame.Größe.Höhe;