2011-08-23 6 views
0

Salut à tous Je suis en train de tester comment développer une application qui a plusieurs vues de table avec leurs propres structures parent/enfant qui sont accessibles à partir d'un menu principal.créer par programme uitableview

Je voudrais savoir comment générer la nouvelle tableview avec le menu uinavigationcontroller mais un uitabbar partagé comme c'est la première fois que j'ai essayé quelque chose comme ça normalement je reste avec des modèles de pommes.

Voici une architecture générale de ce que je veux atteindre, tout exemple de code de suggestions de commentaires serait grandement apprécié et à partir de là je peux travailler à travers moi, c'est plus une question d'où diable dois-je commencer:)

enter image description here

jusqu'à présent, j'ai la fenêtre principale mis en place avec un uiAction attrapant les différents clics de bouton, je dois savoir comment permettre à tous les enfants de partager la UITabBar spécifique et comment mettre en place si les branches individuelles ont leur propre menu UINavigationController si nécessaire.

ceci est mon uiAction

//Delegate.m 
//--- Caputer button clicks --- 
- (IBAction)buttonClick: (UIButton *) sender 
{ 
    if ([sender isEqual:orangeButton]) { 
     NSLog(@"orangeButton Pressed"); 
    } 
    else if ([sender isEqual:blueButton]) { 
     NSLog(@"blueButton Pressed"); 
    } 
    else if ([sender isEqual:greenButton]) { 
     NSLog(@"greenButton Pressed"); 
    } 
    else if ([sender isEqual:purpuleButton]) { 
     NSLog(@"purpleButton Pressed"); 
    } 
} 
+0

Donc ce que j'ai décidé de faire à la place de ceci est de créer une application basée sur la navigation, puis de cacher la barre de navigation sur la première vue car c'est la seule vue que dosnt possède. Je l'ai fait en appelant ** [self.navigationController setNavigationBarHidden: OUI animé: NO]; ** à l'intérieur de viewDidLoad –

Répondre

1

Si vous avez créé une « application TabBar », puis en ajoutant le NavigationController pour l'onglet souhaité est assez facile. Faites glisser le « UINavigationController » l'intérieur le « Controller Bar Tab » dans la fenêtre principale:

enter image description here

Quant à « Comment générer tableViews », la façon la plus simple, est de créer un TableView générique, appelez fichier LevelTableView.h/.m (et il pourrait avoir sa propre .xib), où vous pouvez ajouter ce que vous voulez, puis, continuer à créer de nouvelles ViewControllers, par exemple, dans un niveau de cette tableView:

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    LevelTableView *anotherLevel = [[LevelTableView alloc] initWith...]; 
    [self.navigationController pushViewController:anotherLevel animated:YES]; 
    [anotherLevel release]; 
} 

Le fait est que ce "Leve" lTableView "est créé une fois, mais instancié à différents moments pour chaque niveau que vous voulez ajouter, le contenu est la seule chose qui change.

+0

Je vois, cool va essayer de travailler si cela maintenant .. En ce qui concerne le UITabBar je ne veux pas le mainnwindow.xib à en avoir un .. alors dans ce cas parce que le uitabbar sera toujours le même si je l'ajoute juste à chaque vue qui en a besoin. –

0

Ajoutez les contrôleurs de navigation dans le contrôleur de la barre d'onglets. Puis Cacher le NavigationController et selon les barres d'outils de votre schéma d'utilisation pour pop et naviguer dans vos vues.

0

J'ai exactement quelque chose comme ça. Ce que je fais est que je créé une autre classe que j'appelle « TabBarController » et où j'Initialise tous les différents points de vue qui vont à mes onglets:

UIViewController *viewController1 = [[FirstTab alloc] initWithNibName:@"FirstTab" bundle:NSBundle.mainBundle]; 
    UINavigationController *firstNavController = [[UINavigationController alloc]initWithRootViewController:viewController1];   
    UIViewController *viewController2 = [[SecondTab alloc] initWithNibName:@"SecondTab" bundle:NSBundle.mainBundle]; 
    UINavigationController *secondNavController = [[UINavigationController alloc]initWithRootViewController:viewController2]; 
    myTabBarController = [[UITabBarController alloc] init]; 
    myTabBarController.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController, nil];  

Ensuite, lorsque l'utilisateur clique sur l'un des boutons de la vue principale est ce que je fais:

- (IBAction)yourAction:(id)sender { 

TabBarController *tabBarController1 = [[TabBarController alloc] init]; 
tabController.selectedIndex = 1; ==> chose which tab you want to show 
[[[UIApplication sharedApplication]delegate].window setRootViewController:tabBarController1.myTabBarController]; 

} 

est-ce que le travail assez bien.

Questions connexes