Frage : Das UITabBarController besonders anfertigen - oder ein UIViewControlller verursachend ähnlich ihm

Kann, ich ein UIViewController verursachen, das UITabBarController aber ähnlich ist, zeige nicht den unteren Vorsprungstab an? Ich möchte ein vorhandenes UITabBarController in einer Anwendung durch dieses kundenspezifische UIViewController ersetzen, also muss der Code viel nicht überhaupt ändern. Ich im Augenblick verstecke das UITabBarController, indem ich das

- (leer) hideTabBar verwende: (UITabBarController *) viewController {
wenn ([viewController.view.subviews Zählimpuls] < 2)
Rückkehr;
   
    UIView *contentView;

, wenn ([[viewController.view.subviews objectAtIndex: ] isKindOfClass 0: [UITabBar Kategorie]])
contentView = [viewController.view.subviews objectAtIndex: 1];
else
contentView = [viewController.view.subviews objectAtIndex: 0];

contentView.frame = viewController.view.bounds;            

viewController.tabBar.hidden = JA;
}

But die Ausgabe ist, wenn ich zu einem Systemsansichtsteuerpult wie ABPeoplePickerNavigationController gehe, das ein schwarzer Stab erscheint, wo das UITabBarController bedeutet wird, um zu sein.

I möchten eine Gewohnheit UIViewController verursachen, die wie ein UITabBarController fungiert, das der Wurzelansichtsteuerpult ist und dann es das ganzes andere UIViewControllers auf eine Vorsprungart und weise, ausgenommen es nicht ein Vorsprungstab GUI hat, ich schält programmatically zum korrekten Vorsprung selbst anzeigt.

Antwort : Das UITabBarController besonders anfertigen - oder ein UIViewControlller verursachend ähnlich ihm

Ich löste dieses selbst, indem ich meinen eigenen Behälter UIViewController herstellte, um den Vorsprungstab nachzuahmen

//
// UITabBarController.h
//

#import

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

@property (nicht atomares) int selectedIndex;

- initWithViewControllers (Identifikation): (NSArray *) viewControllers;

@end




//
// UITabBarController.m
//

#import „UITabBarController.h“

@implementation UITabBarController

- initWithViewControllers (Identifikation): (NSArray *) viewControllers
{
  wenn (Selbst = [Superinit])
  {
    viewcontrollers = [[NSMutableArray alloc] init];
    int-Zählimpuls = [viewControllers Zählimpuls];
    für (int i=0; I    {
      UIViewController *vc = [viewControllers objectAtIndex: I];
      [viewcontrollers addObject: vc];
    }
    currentViewIndex = 0;
    [SelbstsetSelectedIndex: 0];
  }
 
  Rückholselbst;
}

- (leeres) setSelectedIndex: Index (int)
{
  //, das gegenwärtige Ansicht entfernt
  UIViewController *viewcontroller = [viewcontrollers objectAtIndex: currentViewIndex];
  [viewcontroller viewWillDisappear: KEIN];
  [viewcontroller.view removeFromSuperview];
  [viewcontroller viewDidDisappear: KEIN];
 
  //, das neue Ansicht addiert
  currentViewIndex = Index;
  viewcontroller = [viewcontrollers objectAtIndex: currentViewIndex];
  [viewcontroller viewWillAppear: KEIN];
  [self.view addSubview: viewcontroller.view];
  [viewcontroller viewDidAppear: KEIN];
}

- selectedIndex (int)
{
  RückholcurrentViewIndex;
}

- (leeres) dealloc
{
  [viewcontrollers dealloc];
  [Superdealloc];
}

@end


Weitere Lösungen  
 
programming4us programming4us