restaurar puede porque pestañas paginas pagina mac los internet handoff este esta donde conectado con cargan asocian algunas ajustes abrir abre iphone ios4 uitabbar nib uitabbaritem

iphone - puede - ¿Cómo eliminar mediante programación un elemento de la barra de pestañas creado en el archivo NIB de la clase principal?



restaurar safari iphone (3)

Puede mantener una referencia a ese objeto de barra de pestañas en su clase y realizar las acciones deseadas en él.

IBOutlet <Type> name;

Conéctelo a través de Interface Builder y puede realizar acciones, y en su caso, puede que esté pensando en eliminarlo de la supervista.

Dentro de mi aplicación iPhone tengo una barra de pestañas común con tres pestañas que se presentan desde varias vistas después de presionar un botón. El enfoque que seguí fue el flujo de trabajo de la aplicación Tweetie, descrito en la publicación de Robert Conn .

Tenga en cuenta que el controlador principal es un controlador de navegación; la barra de pestañas se coloca en el archivo NIB de una controladora de vista de la pila de navegación, y el efecto de alternar entre pestañas se maneja en un delegado método didSelectItem.

@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 las vistas de la barra de pestañas deben personalizarse de acuerdo con el controlador de vista del que procede la aplicación, he hecho de GameTabBarController una clase padre con ese archivo NIB que tiene la barra de pestañas. Entonces, he creado varias clases para niños:

@interface FirstGameTabBarController : GameTabBarController { ... } @interface SecondGameTabBarController : GameTabBarController { ... } ...

Mi problema es que en algunas de las clases para niños me gustaría eliminar la tercera pestaña del archivo NIB asociado con la clase principal. Pero dado que no hay UITabBarController involucrado, no puedo seguir los enfoques típicos que se pueden encontrar en la web, es decir, eliminar el controlador de visualización del elemento de la barra de pestañas.

¿Cómo puedo hacer eso? ¿Es posible eliminar elementos que se han agregado previamente en un archivo NIB?

¡¡Gracias!!

ACTUALIZAR La solución fue tan fácil ... Simplemente tengo que reemplazar los elementos de la barra de pestañas, en lugar de los controladores de vista:

NSMutableArray *items = [NSMutableArray arrayWithArray:self.tabBar.items]; [items removeObjectAtIndex:2]; [self.tabBar setItems:items];

Gracias a @Praveen S por señalarme en la dirección correcta.


El siguiente código tiene la solución:

NSMutableArray *tbViewControllers = [NSMutableArray arrayWithArray:[self.tabBarController viewControllers]]; [tbViewControllers removeObjectAtIndex:2]; [self.tabBarController setViewControllers:tbViewControllers];


Swift 4

func removeTab(at index: Int) { guard let viewControllers = self.tabBarController?.viewControllers as? NSMutableArray else { return } viewControllers.removeObject(at: index) self.tabBarController?.viewControllers = (viewControllers as! [UIViewController]) }