2009-09-21 10 views
1

Mon application nécessite un ensemble d'onglets sur la vue initiale, le dernier élément de l'onglet est réservé pour un achat intégré après la sélection de l'utilisateur. Cependant, une fois que l'utilisateur fait l'achat dans l'application, je voudrais qu'un nouvel ensemble d'onglets apparaisse. Je souhaite que l'utilisateur puisse basculer entre la partie gratuite de l'application et la partie achat in-app de l'application avec différentes barres d'onglets. Par exemple:Comment coder deux onglets différents dans une application iPhone?

"TabBar1" avoir "TabItem 1", "TabItem 2", "TabItem 3" et "TabItem 4" pour mon application gratuite, lorsque l'utilisateur sélectionne "TabItem 4" ... un écran d'achat de bienvenue ou in-app apparaîtra. Si l'utilisateur fait l'achat in-app, "TabBar2" apparaît avec "TabItem 1", "TabItem 5", "TabItem 6" et "TabItem4". "TabItem1" vous ramènera à la partie gratuite de l'application et "TabBar1" lorsque vous sélectionnez à nouveau. J'espère que je n'ai pas confondu ... Comment faites-vous cela? Merci pour l'aide.

J'ai oublié d'ajouter que cette Tabbar doit être combinée avec un contrôleur de Navigation.

Répondre

0

vous pouvez changer les vues de tabbarcontroller racine quand vous le souhaitez, aussi vous pouvez changer tabbaritems titre & icônes. Voici un exemple:

MyAppDelegate *appController = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    // Setting 1st tab + view + icon 
    ViewController1 *viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil]; 
favoritesController.title = @"Tab1 Title"; 
UINavigationController *navigationTab1Controller = [[[UINavigationController alloc] initWithRootViewController: viewController1] autorelease]; 
UITabBarItem *anItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0] autorelease]; 
navigationTab1Controller.tabBarItem = anItem; 

    // Setting 2st tab + view + icon 
ViewController2 *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; 
searchController.title = @"Tab2 Title"; 
UINavigationController *navigationTab2Controller = [[[UINavigationController alloc] initWithRootViewController:searchController] autorelease]; 
UITabBarItem *anItem1 = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1] autorelease]; 
navigationTab2Controller.tabBarItem = anItem1; 

    // Now setting the array of tab views, each one attached to its navigation controller 
NSArray *array = [[NSArray alloc] initWithObjects:self.navigationController, navigationTab1Controller, navigationTab2Controller, nil]; 
[appController.tabBarController setViewControllers:array animated:NO]; 
appController.tabBarController.selectedViewController = self.navigationController; 
UITabBarItem *anItem2 = [[[UITabBarItem alloc] initWithTitle:@"Tab3 Title" image:[appController thumbnailImage:@"image"] tag:2] autorelease]; 
self.navigationController.tabBarItem = anItem2; 

Je modifie l'ensemble des vues et des onglets, en fonction de l'état de mon application. J'espère que cela aide

EDIT: fonction thumbnailImage est une fonction que j'ai écrite pour la mise en cache des images et éviter les fuites de mémoire, vous pouvez utiliser imageNamed ou une autre technique qui récupère une image d'un ensemble.

+0

Merci Nava Carmon pour la réponse instantanée. J'ai maintenant du mal à implémenter ce code. Pouvez-vous me donner un briefing sur la mise en place. Ce morceau de code sera l'épine dorsale de mon application et bien que je sois très technique, je suis novice dans le domaine du codage. J'ai peut-être besoin que vous me donniez la main pour implémenter ce code dans mon projet. Toute aide est la bienvenue – SympleMyne

+0

Pouvez-vous préciser quel est le problème? S'il vous plaît fournir plus de détails. Je serai heureux de vous aider –

0

Bien que cela puisse être possible, je suggère fortement de ne pas le faire dans une perspective d'expérience utilisateur. Échanger un élément de base de l'interface de navigation sous le nez des utilisateurs est lié à confondre certains utilisateurs et ce n'est pas vraiment nécessaire dans cette situation.

Il existe de nombreux autres moyens de donner des commentaires à l'utilisateur, et de nombreuses façons de gérer les achats intégrés. Je recommande fortement de faire des maquettes de méthodes qui ne pourraient pas potentiellement dérouter l'utilisateur.

Questions connexes