Hide TabBar und zeigen NavigationController Symbolleiste auf den button klicken
Habe ich die folgende Ansicht-Hierarchie:
Tab-Bar-Controller -> Navigations-Controller -> Custom-View-Controller
In meine Benutzerdefinierte Ansicht möchte ich die TabBar zu verschwinden und zeigen Sie eine Symbolleiste statt. Ähnlich wie in iOS7 nativen Fotos-app beim drücken auf 'select'.
Ich versuchte verschiedene Lösungen, die ich gefunden SO aber geschafft, entweder:
- TabBar ausgeblendet und die Symbolleiste angezeigt, mit der schwarzen Kluft
- TabBar ausgeblendet und die Werkzeugleiste ausgeblendet
- TabBar ausgeblendet Symbolleiste gezeigt, mit Abstand von unten. Allerdings Benutzerdefinierten Inhalt anzeigen, erreicht den unteren Rand des Bildschirms (unter der Symbolleiste und in der gleichen Stelle der tab-Leiste verwendet werden)
Den Unterschied zu anderen Lösungen, die ich fand, ist, dass ich müssen dies geschehen, klicken Sie auf auf und nicht auf push.
Einige der Dinge habe ich versucht:
//#1
[self.navigationController.toolbar setHidden:!isSelecting];
[self.tabBarController.tabBar setHidden:isSelecting];
//#2
self.hidesBottomBarWhenPushed = YES;
//#3
#1 & #2 variants @ different controller along the path
- "Der Unterschied zu anderen Lösungen, die ich fand, ist, dass ich müssen dies geschehen, klicken Sie auf auf und nicht auf Stoß." Äääh... was?
- Können Sie uns einige code oder screenshots von dem, was Sie erreicht haben? Haben Sie versuchen, ändern der Größe der Ansicht der benutzerdefinierten Ansicht-controller zu füllen, die schwarze Kluft, die Sie bekommen haben?
- Ich vermute, dass die Fotos-app wird dabei eine modale Präsentation (ohne animation), wenn Sie berühren Sie die Taste "select". Wenn man einen controller hat eine Symbolleiste, es würde decken die tab-Leiste, und geben Sie das Aussehen Sie in Fotos sehen.
- Ich meine, dass ich denke, dass die Antworten, die vorgeschlagen, dass die Verwendung
hidesBottomBarWhenPushed
funktioniert nicht in diesem Fall. Aber vielleicht bin ich falsch. - Ich habe nicht versucht, Sie zu verändern. Hinzugefügt von code.
- Aber es scheint, dass die 'neue' Ansicht behält den gleichen Zustand wie vor dem Sie wählen drücken. Ist das machbar mit einem modal?
InformationsquelleAutor Xyand | 2014-06-22
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließlich, nach dem spielen mit den Einstellungen habe ich es geschafft, damit es funktioniert. Ich bin mir nicht sicher, warum es jetzt funktioniert und nicht funktioniert hat so vor, ich würde schätzen Ihre Kommentare.
Storyboard:
Code:
Auf die Schaltfläche klicken Sie auf ausblenden/einblenden tabBar:
[self.tabBarController.tabBar setHidden:state]
Diese fast funktioniert. Es tut ausblenden/einblenden die tabBar beim drücken der Taste, aber das problem ist nur, dass die tabBar-Containers wird zunächst ausgeblendet, wenn der Wechsel der tabs. Ich hatte zu tun, einige zusätzliche Anstrengungen, um es sichtbar.
Set
UITabBarControllerDelegate
einblenden tabBar beim Wechsel der tabs. Ich habe es in einem benutzerdefiniertenSUSourceTabController
:Wir auch, müssen Sie es einblenden für die erste Registerkarte Ansicht in der Custom-View-Controller-code. Mit
setHidden:NO
in jedem anderen Ort in der code hat nicht funktioniert.Überprüfen Sie diese Kategorie aus dieser Frage's Antwort.
UITabBarController+HideTabbar.h
UITabBarController+HideTabbar.m