Como remover programaticamente um item da barra de guias criado no arquivo NIB da classe pa
No aplicativo para iPhone, tenho uma barra de guias comum com três guias que é apresentado a partir de várias visualizações depois de pressionar um botão. A abordagem que segui foi o fluxo de trabalho do aplicativo Tweetie, descrito emRobert Conn post.
Observe que o controlador principal é um controlador de navegação; a barra de guias é colocada no arquivo NIB de um controlador de exibição da pilha de navegação e o efeito da alternância de guias é tratado em um método didSelectItem de delegad
@interface GameTabBarController : UIViewController<UITabBarDelegate> {
UITabBar *tabBar;
UITabBarItem *lastGameTabBarItem;
UITabBarItem *previousGamesTabBarItem;
UITabBarItem *myBetsTabBarItem;
NSArray *viewControllers;
UIViewController *currentViewController;
}
@implementation GameTabBarController
...
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
UIViewController *viewController = nil;
// Get the view controller linked to the tab bar item pressed
...
// Switch to the view
[self.currentViewController.view removeFromSuperview];
[self.view addSubview:viewController.view];
self.currentViewController = viewController;
}
...
@end
Como as visualizações da barra de guias devem ser personalizadas de acordo com o controlador de visualização de onde o aplicativo veio, eu fiz issoGameTabBarController
uma classe pai com o arquivo NIB que possui a barra de guias. Então, eu criei várias classes filhos:
@interface FirstGameTabBarController : GameTabBarController {
...
}
@interface SecondGameTabBarController : GameTabBarController {
...
}
...
Meu problema é que, em algumas classes filhas, eu gostaria de remover a terceira guia do arquivo NIB associado à classe pai. Mas como não há UITabBarController envolvido, não posso seguir abordagens típicas que você pode encontrar na Web, ou seja, remover o controlador de exibição do item da barra de guia
Como eu posso fazer isso? É possível remover elementos que foram adicionados anteriormente em um arquivo NIB?
Obrigado!
ATUALIZA A solução foi tão fácil ... Eu tenho apenas que substituir os itens da barra de guias, em vez dos controladores de exibição:
NSMutableArray *items = [NSMutableArray arrayWithArray:self.tabBar.items];
[items removeObjectAtIndex:2];
[self.tabBar setItems:items];
Obrigado a @Praveen S por me indicar a direção certa.