entfernen UITabBarItem
-
26-09-2019 - |
Frage
Wie kann ich eine UITabBarItem
aus einem UITabBar
entfernen?
Ich habe nichts versucht, weil ich nichts von Google-Suchanfragen oder der Dokumentation für UITabBar
, UITabBarController
oder UITabBarItem
gefunden zu haben.
Vielen Dank im Voraus! :)
Lösung
UITabBar hat ein NSArray Sammlung von Gegenständen. Da die Elemente Eigenschaft ist ein NSArray und nicht ein
Andere Tipps
Mike Caron Rat wird eine Ausnahme werfen , wenn Sie beabsichtigen, eine tabBar zu ändern, die zu einer Steuerung gehört.
In iOS 3.0 und höher, sollten Sie nicht versuchen, die Methoden zu verwenden und Eigenschaften dieser Klasse zu ändern, die Tab bar wenn es mit einem zugeordneten Tab bar Controller-Objekt. Ändern die Tab-Leiste auf diese Weise ergibt sich die Werfen einer Ausnahme. Stattdessen jede Modifikationen an der Registerleiste oder ihre Elemente sollten die Tab-Leiste erfolgen durch Controller-Schnittstelle. Sie können nach wie vor direkt eine Lasche bar ändern Objekt, ist nicht mit einer Tab-Leiste zugeordnet Controller.
In diesem Fall self.tabBarItem=nil
wird es entfernen.
Hinweis: Dies scheint nicht der Arbeit in iOS 11. Es war immer noch gut in iOS 10
.Dies ist eine mäßig schreckliche Antwort, meiner Meinung nach, zum Teil, weil sie die menschlichen Schnittstelle Leitlinien der Untergrabung, aber trotzdem scheint es an der Arbeit sauber:
UITabBar *oldbar = self.tabBarController.tabBar;
UITabBar *newbar = [[UITabBar alloc] initWithFrame:CGRectMake(0,0,oldbar.frame.size.width,oldbar.frame.size.height)];
NSMutableArray *olditems = [[oldbar items] mutableCopy];
[olditems removeObjectAtIndex:0];
NSArray *newitems = [[NSArray alloc] initWithArray:olditems];
[newbar setItems:newitems animated:false];
[oldbar addSubview:newbar];
Dass Schichten es sauber auf dem alten Tabbar, und es behält seine Funktionalität.