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! :)

War es hilfreich?

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.

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