Cuestión : Modificando el UITabBarController para requisitos particulares - o creando un UIViewControlller similar a él

¿Puedo crear un UIViewController similar a UITabBarController pero no exhibo la barra inferior de la lengüeta? Quiero substituir un UITabBarController existente en un uso por este UIViewController de encargo así que el código no tiene que cambiar mucho en absoluto. En el momento estoy ocultando el UITabBarController usando el

- (vacío) hideTabBar: (UITabBarController *) viewController {
si ([cuenta de viewController.view.subviews] < vuelta de 2)
;
   
    UIView *contentView;
del
si ([[objectAtIndex de viewController.view.subviews: ] isKindOfClass 0: [Clase de UITabBar]]) contentView del
= [objectAtIndex de viewController.view.subviews: 1]; contentView del else
del
= [objectAtIndex de viewController.view.subviews: 0];
del
contentView.frame = viewController.view.bounds;            
viewController.tabBar.hidd/>en = SÍ; el

But del
} la edición es cuando voy a un regulador de la opinión de sistema tal como ABPeoplePickerNavigationController que una barra negra aparece donde el UITabBarController se significa para estar. el

I quiere crear una aduana UIViewController que actúe como un UITabBarController que sea el regulador de la opinión de la raíz y entonces exhibe el resto de UIViewControllers en una manera de la lengüeta a menos que no tenga un GUI de la barra de la lengüeta, yo programmatically cambiará a la lengüeta correcta mismo.
class= del

Respuesta : Modificando el UITabBarController para requisitos particulares - o creando un UIViewControlller similar a él

Solucioné esto mismo creando mi propio envase UIViewController para mímico la barra de la lengüeta

//
// UITabBarController.h
//

#import

@interface UITabBarController: UIViewController
{
  *viewcontrollers de NSMutableArray;
  currentViewIndex de la internacional;
}

selectedIndex del @property internacional (no atómica);

- initWithViewControllers (identificación): (NSArray *) viewControllers;

@end




//
// UITabBarController.m
//

#import “UITabBarController.h”

@implementation UITabBarController

- initWithViewControllers (identificación): (NSArray *) viewControllers
{
  si (uno mismo = [init estupendo])
  {
    viewcontrollers = [[init del alloc de NSMutableArray]];
    cuenta de la internacional = [cuenta de los viewControllers];
    para (internacional i=0; i    {
      *vc de UIViewController = [objectAtIndex de los viewControllers: i];
      [addObject de los viewcontrollers: vc];
    }
    currentViewIndex = 0;
    [setSelectedIndex del uno mismo: 0];
  }
 
  uno mismo de vuelta;
}

- setSelectedIndex (vacío): índice (internacional)
{
  // que quita la visión actual
  *viewcontroller de UIViewController = [objectAtIndex de los viewcontrollers: currentViewIndex];
  [viewcontroller viewWillDisappear: NINGÚN];
  [removeFromSuperview de viewcontroller.view];
  [viewcontroller viewDidDisappear: NINGÚN];
 
  // que agrega la nueva visión
  currentViewIndex = índice;
  viewcontroller = [objectAtIndex de los viewcontrollers: currentViewIndex];
  [viewcontroller viewWillAppear: NINGÚN];
  [addSubview de self.view: viewcontroller.view];
  [viewcontroller viewDidAppear: NINGÚN];
}

- selectedIndex (internacional)
{
  currentViewIndex de vuelta;
}

- dealloc (vacío)
{
  [dealloc de los viewcontrollers];
  [dealloc estupendo];
}

@end


Otras soluciones  
 
programming4us programming4us