Créer uiTabBarController par programme
Je veux créer un UIView
pour un UITabBarController
Voici mon code pour le .h
fichier :
@interface TE : UIViewController <UITabBarControllerDelegate>{
UITabBarController *tabBarController;
}
@property (nonatomic,retain) UITabBarController *tabBarController;
@end
La viewDidLoad
méthode:
UIViewController *testVC = [[T1 alloc] init];
UIViewController *otherVC = [[T2 alloc] init];
NSMutableArray *topLevelControllers = [[NSMutableArray alloc] init];
[topLevelControllers addObject: testVC];
[topLevelControllers addObject: otherVC];
tabBarController = [[UITabBarController alloc] init];
tabBarController.delegate = self;
[tabBarController setViewControllers:topLevelControllers animated:NO];
tabBarController.selectedIndex = 0;
self.view = tabBarController.view;
Cela crée de la barre d'onglets de contrôle, mais lorsque je clique sur un onglet de l'élément de barre, j'obtiens une erreur:
Thread1:Programme du signal de réception: SIGABRT
Modifier: j'ai résolu le problème en téléchargeant et en modifiant la version de http://www.iphonedevcentral.com/create-uitabbarcontroller/
source d'informationauteur Mehdi
Vous devez vous connecter pour publier un commentaire.
Vous dites ci-dessus que vous ne voulez pas créer de la tabBarController dans l'appDelegate. Pourquoi pas? Où voulez-vous le créer? Le tabBarController a la racine de la vue et contrôleur ne peut pas être un enfant de tout autre point de vue, contrôleur.
Btw, assurez-vous de mettre en œuvre:
Sous-Classe UITabBarController
Remplacer l' - (void) méthode loadView et inclure le code suivant
C'est assez bien.
Changement
self.view = tabBarController.view;
d'[self.view addSubview:tabBarController.view];
Et elle fonctionne correctementEssayer de changer
self.view = tabBarController.view;
à
[self.view addSubview:tabBarController.view];
Voir si cela aide.
Également essayer de placer dans votre
-(void)loadView
méthodeLa raison, vous êtes probablement confronté à un écran noir est parce que vous n'avez pas initialisé votre UIView correctement.
@Mehdi, il suffit de faire votre TE un UITabBarController au lieu d'un UIViewController qui a TabBarController. Rend plus facile pour vous de gérer votre TabBarController. Pour répondre à certains autres qui ont indiqué que vous pouvez avoir un seul TabBarController que la fenêtre rootViewController. Ce n'est pas le cas. Un UITabBarController peut être instancié dans plusieurs endroits où vous avez besoin d'un deuxième niveau menu de navigation. Avoir un TabBar dans un TabBar n'aurait aucun sens, mais avoir un Menu de Navigation à gauche et puis d'avoir un TabBar sur chaque élément de menu a du sens.