Bei der Verwendung von hidesBottomBarWhenPushed, möchte ich die tab-Leiste wieder, wenn ich drücken Sie eine andere Ansicht
Habe ich einen navigation-controller. Für eine der Ansichten, die ich ausblenden möchten der unteren tab-Leiste, so dass Sie immer die maximal mögliche Bildschirm Immobilien. Um dies zu tun, ich habe:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.hidesBottomBarWhenPushed = YES; //To hide the tab bar
}
return self;
}
Aber für den nächsten Blick, den ich push auf den stack, ich will, dass die tab-Leiste wieder angezeigt werden. Gibt es eine Möglichkeit, dies zu tun?
InformationsquelleAutor Chris | 2011-05-24
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man Sie wieder, aber es führt in eine falsche animation. Seite kommt in der linken und der unteren Leiste rechts. So ist es wahrscheinlich nicht das Verhalten, das Sie möchten. Aber in den gleichen controller, tun
self.hidesBottomBarWhenPushed = NO;
vor dem drücken der nächsten view-controller.Als von iOS5, gibt es eine sehr einfache Möglichkeit, dies zu erreichen. Es ist im wesentlichen die gleiche Methode wie Deepak, aber es gibt keine Artefakte, die mit dem animation - alles, was aussieht wie erwartet.
Auf init, set
nur wie du schon oben. Wenn es Zeit ist, schieben Sie den neuen controller auf den stack, so einfach ist es:
Ist es wichtig, rücksetzen Sie den Wert auf YES, wenn sich der controller wurde gedrückt, um re-ausblenden der Leiste, wenn der Benutzer tippt auf die Schaltfläche Zurück und der Blick kommt wieder in Sicht.
controller
schiebt einen anderen controller, es wird über die untere Leiste ausgeblendet.Bin ich dieses problem gelöst haben wie:
Fast alle meine ViewControllers sind Kinder BaseViewController.
So, Beispiel:
Nur überschreiben der variable "prefersBottomBarHidden" im ViewController, wo BottomBar ausgeblendet werden sollen:
hidesBottomBarWhenPushed
eines Protokolls ist nicht möglich. Jetzt wenn nur, wenn, dass würde auch das Problem mit SplitViewController ich wäre super glücklich 🙂 => openradar.appspot.com/24846972Fall eine:
Zu verstecken UITabbarController in einem cetain UIVIewController, zum Beispiel beim telefonieren
self.performSegueWithIdentifier("Identifier", sender: self)
ist es necesssary vor, dass, gesetztself.hidesBottomBarWhenPushed = true
Flagge. Und nachself.hidesBottomBarWhenPushed = false
Flagge. Aber wir müssen understad, dass durch eine UIViewController, UITabbarController wird wieder erscheinen, und, im Falle dass, wenn Sie verwenden müssen, UITabbarController mit einzelnen UIViewControler, es wird nicht nachgeben richtige Ergebnis.Fall Zwei:
Zu verstecken UITabbarController in einer bestimmten UIVIewController, nach denen ein UITabbarController sollte geknallt werden, ist es notwendig, Z. B. beim aufrufen von
self.performSegueWithIdentifier("nextController", sender: self)
zu setzenself.hidesBottomBarWhenPushed = true
vor der Methode. AlsewillMoveToParentViewController(parent: UIViewController?)
in die Methode sollte so konfiguriert sein, wie es gezeigt wird in dem code-Beispiel.Swift 3 code:
Es ist schon eine Weile her seit diese Frage gestellt wurde, aber keine dieser Antworten Adresse mit Storyboard leitet über. Es stellt sich heraus, ziemlich einfach:
In einer root-view-controller "Ein" (das zeigt die tabBar), wenn es an der Zeit zu zeigen, ein weiteres view-controller "B", wo keine tabBar-Containers wird gesucht:
In view controller B, wenn es Zeit kommt, um zu zeigen, eine Dritte-view-controller C (tabBar wollte mal wieder):