So entfernen Sie programmgesteuert ein tab bar item erstellt, in der übergeordneten Klasse NIB-Datei?

In meinem iPhone-Anwendung, die ich haben eine gemeinsame tab-Leiste mit drei Registerkarten, die präsentiert wird von mehreren Ansichten nach dem drücken einer Taste. Der Ansatz, dem ich folgte, war der workflow von Tweetie Anwendung, beschrieben in Robert Conn post.

Beachten Sie, dass der main-controller ist eine Navigations-controller; die tab-Leiste befindet sich in einer view-controller NIB-Datei der navigation stack, und der Effekt der Umschaltung zwischen den tabs erfolgt in Stellvertretung didSelectItem Methode.

@interface GameTabBarController : UIViewController<UITabBarDelegate> {
  UITabBar *tabBar;
  UITabBarItem *lastGameTabBarItem;
  UITabBarItem *previousGamesTabBarItem;
  UITabBarItem *myBetsTabBarItem;

  NSArray *viewControllers;
  UIViewController *currentViewController;
}

@implementation GameTabBarController
  ...

  - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    UIViewController *viewController = nil;

    //Get the view controller linked to the tab bar item pressed
    ...

    //Switch to the view
    [self.currentViewController.view removeFromSuperview];
    [self.view addSubview:viewController.view];
    self.currentViewController = viewController;
  }

  ...
@end

Da die Aussicht auf die tab-Leiste muss angepasst werden, je nach den view-controller der Anwendung kam, ich habe an diesem GameTabBarController einer übergeordneten Klasse mit, dass eine NIB-Datei, die die tab-Leiste. Dann, ich habe mehrere Kinder Klassen:

@interface FirstGameTabBarController : GameTabBarController {
  ...   
}

@interface SecondGameTabBarController : GameTabBarController {
  ...   
}

...

Mein problem ist, dass einige der Kinder, die Klassen würde ich gerne entfernen der Dritten Registerkarte der NIB-Datei, die im Zusammenhang mit übergeordneten Klasse. Aber da gibt es keine UITabBarController beteiligt ist, kann ich nicht Folgen typische Ansätze im web gefunden, d.h. entfernen Sie den view-controller der tab bar item.

Wie kann ich das tun? Ist es möglich, zu entfernen Elemente, die zuvor in einer NIB-Datei?

Dank!!

UPDATE
Die Lösung war so einfach... ich habe einfach zu ersetzen, die tab bar items, statt der view-Controller:

NSMutableArray *items = [NSMutableArray arrayWithArray:self.tabBar.items];
[items removeObjectAtIndex:2];
[self.tabBar setItems:items];

Dank @Praveen S für den Hinweis mich in die richtige Richtung.

InformationsquelleAutor elitalon | 2011-05-06

Schreibe einen Kommentar