Vraag : Aanpassend UITabBarController - of creërend een UIViewControlller gelijkend op het

Kan toon ik een UIViewController gelijkend op UITabBarController maar niet de bar van het bodemlusje creëren? Ik wil het bestaan UITabBarController in een toepassing met deze douane UIViewController vervangen zodat moet de code veel helemaal niet veranderen. Ik op het ogenblik verberg UITabBarController door hideTabBar

-: (UITabBarController *) viewController {
als ([telling viewController.view.subviews] < 2)/> terugkeer    
    UIView *contentView;

als ([[viewController.view.subviews objectAtIndex: 0] isKindOfClass: [Klasse UITabBar]])
contentView = [viewController.view.subviews objectAtIndex: 1];
else
contentView = [viewController.view.subviews objectAtIndex: 0];

contentView.frame = viewController.view.bounds;            

viewController.tabBar.hidden = JA;
}

But de kwestie is wanneer ik naar een controlemechanisme van de systeemmening zoals ABPeoplePickerNavigationController ga een zwarte bar lijkt waar UITabBarController moet zijn.

I wil tot een douane UIViewController leiden die als een UITabBarController handelt die het controlemechanisme zal zijn van de wortelmening en dan het al andere UIViewControllers op een lusjemanier maar heeft het geen lusjebar GUI toont, zal ik programmatically op het correcte lusje zelf overschakelen.

Antwoord : Aanpassend UITabBarController - of creërend een UIViewControlller gelijkend op het

Ik loste dit zelf door mijn eigen container UIViewController te creëren op om de lusjebar na te bootsen

//
// UITabBarController.h
//

#import

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

@property (nonatomic) int. selectedIndex;

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

@end




//
// UITabBarController.m
//

#import „UITabBarController.h“

@implementation UITabBarController

- (identiteitskaart) initWithViewControllers: (NSArray *) viewControllers
{
  als (zelf = [super init])
  {
    viewcontrollers = [[NSMutableArray alloc] init];
    int. telling = [viewControllerstelling];
    voor (int. i=0; i    {
      UIViewController *vc = [viewControllers objectAtIndex: I];
      [viewcontrollers addObject: vc];
    }
    currentViewIndex = 0;
    [zelfsetSelectedIndex: 0];
  }
 
  terugkeer zelf;
}

- (leegte) setSelectedIndex: (int.) index
{
  // die huidige mening verwijderen
  UIViewController *viewcontroller = [viewcontrollers objectAtIndex: currentViewIndex];
  [viewcontroller viewWillDisappear: GEEN];
  [viewcontroller.view removeFromSuperview];
  [viewcontroller viewDidDisappear: GEEN];
 
  // die nieuwe mening toevoegen
  currentViewIndex = index;
  viewcontroller = [viewcontrollers objectAtIndex: currentViewIndex];
  [viewcontroller viewWillAppear: GEEN];
  [self.view addSubview: viewcontroller.view];
  [viewcontroller viewDidAppear: GEEN];
}

- (int.) selectedIndex
{
  terugkeer currentViewIndex;
}

- (leegte) dealloc
{
  [viewcontrollers dealloc];
  [super dealloc];
}

@end


Andere oplossingen  
 
programming4us programming4us