Pytanie : Dostosowywać the UITabBarController - lub tworzyć UIViewControlller jednakowy ono

Móc I UIViewController jednakowy UITabBarController ale wystawiać the dolny zakładka bar? I chcieć istniejący UITabBarController w zastosowanie z ten obyczajowy UIViewController więc the kod musieć dużo wcale. I/>- chować the UITabBarController

- (kawitacyjny) hideTabBar: (UITabBarController *) viewController {
jeżeli ([viewController.view.subviews obliczenie] < 2)
powrót;
   
    UIView *contentView;

jeżeli ([[viewController.view.subviews objectAtIndex: (0)] isKindOfClass: [UITabBar klasa]])
contentView = [viewController.view.subviews objectAtIndex: (1)];
else
contentView = [viewController.view.subviews objectAtIndex: (0)];

contentView.frame = viewController.view.bounds;            

viewController.tabBar.hidden = TAK;
}

But the zagadnienie być kiedy I iść system widok kontroler tak jak ABPeoplePickerNavigationController czarny bar pojawiać się dokąd the UITabBarController znaczyć.

I chcieć obyczajowy UIViewController który postępować jak UITabBarController che być the korzeniowy widok kontroler i wtedy ono wystawiać wszystkie the inny UIViewControllers w zakładka moda oprócz ono mieć zakładka bar GUI, I programmatically wyłaczać the poprawny zakładka.

Odpowiedź : Dostosowywać the UITabBarController - lub tworzyć UIViewControlller jednakowy ono

I bar rozwiązywać bar mój swój zbiornik UIViewController the zakładka bar

//
// UITabBarController.h
//

#import

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

@property (selectedIndex) int selectedIndex;

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

@end




//
// UITabBarController.m
//

#import "UITabBarController.h"

@implementation UITabBarController

- (id) initWithViewControllers: (NSArray *) viewControllers
{
  jeżeli (jaźń = [super init])
  {
    viewcontrollers = [[NSMutableArray alloc] init];
    int obliczenie = [viewControllers liczyć];
    dla (int i=0; i    {
      UIViewController *vc = [viewControllers objectAtIndex: i];
      [viewcontrollers addObject: vc];
    }
    currentViewIndex = (0);
    [jaźń setSelectedIndex: (0)];
  }
 
  powrotny jaźń;
}

- (kawitacyjny) setSelectedIndex: (int) wskaźnik
{
  // aktualny widok
  UIViewController *viewcontroller = [viewcontrollers objectAtIndex: currentViewIndex];
  [viewcontroller viewWillDisappear: ŻADNY];
  [viewcontroller.view removeFromSuperview];
  [viewcontroller viewDidDisappear: ŻADNY];
 
  // nowy widok
  currentViewIndex = wskaźnik;
  viewcontroller = [viewcontrollers objectAtIndex: currentViewIndex];
  [viewcontroller viewWillAppear: ŻADNY];
  [self.view addSubview: viewcontroller.view];
  [viewcontroller viewDidAppear: ŻADNY];
}

- (int) selectedIndex
{
  powrotny currentViewIndex;
}

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

@end


Inne rozwiązania  
 
programming4us programming4us