Pergunta : Personalizando o UITabBarController - ou criando um UIViewControlller similar a ele

Posso eu criar um UIViewController similar a UITabBarController mas não indico a barra inferior da aba? Eu quero substituir um UITabBarController existente em uma aplicação com este UIViewController feito sob encomenda assim que o código não tem que mudar muito de todo. Eu neste momento estou escondendo o UITabBarController usando o

- (vago) hideTabBar: (UITabBarController *) retorno do
do viewController {
se ([contagem de viewController.view.subviews] < 2);
   
    UIView *contentView;
do
se ([[objectAtIndex de viewController.view.subviews: ] isKindOfClass 0: [Classe de UITabBar]]) contentView do
= [objectAtIndex de viewController.view.subviews: 1]; contentView do else
do
= [objectAtIndex de viewController.view.subviews: 0];
do
contentView.frame = viewController.view.bounds;            
viewController.tabBar.hidd/>en = SIM; o

But do
} a edição é quando eu vou a um controlador da opinião de sistema tal como ABPeoplePickerNavigationController que uma barra preta aparece o lugar onde o UITabBarController é significado estar. o

I quer criar um costume UIViewController que actue como um UITabBarController que seja o controlador da opinião da raiz e então indique todo o UIViewControllers restante em uma forma da aba a não ser que não tenha um GUI da barra da aba, mim comute programmatically à aba correta eu mesmo.
class= do

Resposta : Personalizando o UITabBarController - ou criando um UIViewControlller similar a ele

Eu resolvi este eu mesmo criando meu próprio recipiente UIViewController para imitar a barra da aba

//
// UITabBarController.h
//

#import

@interface UITabBarController: UIViewController
{
  *viewcontrollers de NSMutableArray;
  currentViewIndex do int;
}

selectedIndex (não atómico) do int do @property;

- initWithViewControllers (identificação): (NSArray *) viewControllers;

@end




//
// UITabBarController.m
//

#import “UITabBarController.h”

@implementation UITabBarController

- initWithViewControllers (identificação): (NSArray *) viewControllers
{
  se (auto = [init super])
  {
    viewcontrollers = [[init do alloc de NSMutableArray]];
    contagem do int = [contagem dos viewControllers];
    para (int i=0; i    {
      *vc de UIViewController = [objectAtIndex dos viewControllers: i];
      [addObject dos viewcontrollers: vc];
    }
    currentViewIndex = 0;
    [setSelectedIndex do auto: 0];
  }
 
  auto do retorno;
}

- setSelectedIndex (vago): índice (int)
{
  // que remove a vista atual
  *viewcontroller de UIViewController = [objectAtIndex dos viewcontrollers: currentViewIndex];
  [viewcontroller viewWillDisappear: NENHUM];
  [removeFromSuperview de viewcontroller.view];
  [viewcontroller viewDidDisappear: NENHUM];
 
  // que adiciona a vista nova
  currentViewIndex = índice;
  viewcontroller = [objectAtIndex dos viewcontrollers: currentViewIndex];
  [viewcontroller viewWillAppear: NENHUM];
  [addSubview de self.view: viewcontroller.view];
  [viewcontroller viewDidAppear: NENHUM];
}

- selectedIndex (int)
{
  currentViewIndex do retorno;
}

- dealloc (vago)
{
  [dealloc dos viewcontrollers];
  [dealloc super];
}

@end


Outras soluções  
 
programming4us programming4us