Come rimuovere un UITabBarItem
da un UITabBar
?Rimuovi UITabBarItem
Non ho provato nulla, perché non ho trovato nulla da ricerche di Google o la documentazione per UITabBar
, UITabBarController
o UITabBarItem
.
Grazie in anticipo! :)
Come rimuovere un UITabBarItem
da un UITabBar
?Rimuovi UITabBarItem
Non ho provato nulla, perché non ho trovato nulla da ricerche di Google o la documentazione per UITabBar
, UITabBarController
o UITabBarItem
.
Grazie in anticipo! :)
UITabBar ha una raccolta di articoli NSArray. Poiché la proprietà items è un NSArray e non uno NSMutableArray, dovresti costruire un nuovo NSArray da quello esistente privo dell'oggetto che vuoi rimuovere, quindi impostare la proprietà items sul nuovo array.
/* suppose we have a UITabBar *myBar, and an int index idx */
NSMutableArray modifyMe = [[myBar items] mutableCopy];
[modifyMe removeObjectAtIndex:idx];
NSArray *newItems = [[NSArray alloc] initWithArray:modifyMe];
[myBar setItems:newItems animated:true];
Ricorda, '- [NSArray mutableCopy]' è tuo amico. Inoltre, non trascurare '- [UITabBar setItems: animated:]'. –
http://developer.apple.com è anche tuo amico;) –
i consigli di Mike Caron will throw an exception se avete intenzione di modificare un TabBar che appartiene a un controller.
in iOS 3.0 e versioni successive, non si deve tentativo di utilizzare i metodi e proprietà di questa classe di modificare la barra scheda quando è associata a un oggetto controller bar scheda. Modificando la barra delle schede in questo modo provoca il lancio di un'eccezione . Invece, qualsiasi modifica alla barra delle schede o le sue voci dovrebbero avvenire tramite l'interfaccia del controller della barra delle linguette. È comunque possibile modificare direttamente un oggetto barra di schede che non è associato a una barra di schede controller.
In questo caso lo si rimuoverà self.tabBarItem=nil
.
In iOS 11, self.tabBarItem = nil rende lo spot vuoto vuoto, in realtà non mescola gli elementi per riempire l'elemento "rimosso". :( –
https://stackoverflow.com/a/9908361/856925 ha una risposta che funziona ancora - rimuovere il viewcontroller dall'elenco dei checkcontrollers tabbarcontroller. –
NOTA: questo sembra non funzionare in iOS 11. Era ancora bene in iOS 10.
Questa è una risposta moderatamente orribile, a mio avviso, in parte perché è sovvertire le Human Interface Guidelines, ma tutti lo stesso sembra funzionare in modo pulito:
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];
che gli strati in modo pulito sulla parte superiore della vecchia barra delle linguette, e mantiene la sua funzionalità.
Ciao @esqew, cosa hai già provato? http://stackoverflow.com/questions/how-to-ask – jcolebrand
Non ho provato nulla, perché non ho trovato nulla da ricerche di Google o la documentazione di 'UITabBar',' UITabBarController', o 'UITabBarItem'. – esqew