Outils pour utilisateurs

Outils du site


objc:implementer_une_tabbar

Implémentation d'une tabbar

Principes et utilisations

UITabBar est une classe qui permet d'ajouter des contrôles accessibles par un simple bouton. Il est alors possible de créer un barre d'onglets ou une barre de boutons donnant accès à des vues différentes. Chaque vue est une instance de UITabBarItem qu'il est possible d'animer.

Étapes de construction

Déclarations

On part du principe que la tabBar est une propriété de l'Application Delegate. On le déclare ainsi qu'un tableau mutable qui permettra le stockage des vues de la tabBar.

@interface MyApplicationAppDelegate : NSObject {
    UITabBarController	*tabBarController;
    NSMutableArray	*viewControllersList;
}

Implémentation

Le code minimal contient

  • l'instanciation des classes pour créer les objets nécessaires.
  • la copie du tableau de vues dans la tabBar : le tabBarController est muni d'une propriété viewControllers de type NSArray. Pour alimenter cette propriété, il est donc nécessaire de copier notre tableau
  • on spécifie l'index du tabBar sélectionné
  • on finit par ajouter la tabBar à la window
self.tabBarController = [[UITabBarController alloc] init];
self.viewControllersList = [NSMutableArray arrayWithCapacity:5];
// ici viendra le code de création des vues internes au tabBarController	
self.tabBarController.viewControllers = [self.viewControllersList copy];
self.tabBarController.selectedIndex = 0;
[window addSubview:self.tabBarController.view];

Créer les vues

On peut instancier et ajouter chaque vue au moyen d'une méthode spécifique

- (void)initMyView 
{
    UITableView *myTableView = [[UITableView alloc] init];
    UINavigationController *myTableViewNavigationController = [[UINavigationController alloc] initWithRootViewController:myTableView];
    UITabBarItem *myTabBarItem = [[UITabBarItem alloc] initWithTitle:@"Belle vue" image:[UIImage imageNamed:@"belleVue.png"] tag:1];
    myTableView.tabBarItem = myTabBarItem;
    [self.viewControllersList addObject:myTableViewNavigationController];
    // On n'oublie pas de libérer la mémoire
    [myTableViewNavigationController release];
    [myTableView release];
    [myTabBarItem release];
}

Ajouter la vue

Il suffit alors d'appeler la méthode pour remplir le tabBarController

self.tabBarController = [[UITabBarController alloc] init];
self.viewControllersList = [NSMutableArray arrayWithCapacity:5];
 
[self initMyView];
 
self.tabBarController.viewControllers = [self.viewControllersList copy];
self.tabBarController.selectedIndex = 0;
[window addSubview:self.tabBarController.view];
objc/implementer_une_tabbar.txt · Dernière modification: 2016/10/17 13:56 (modification externe)