Je travaille actuellement sur une application dans laquelle je réalise un catalogue qui contiendra différents produits. Jusqu'à présent, j'ai fait mon menu de démarrage, qui comprend trois boutons (un pour le catalogue, un pour les paramètres et un pour les instructions). Lorsque vous appuyez sur le bouton du catalogue, l'application passe à CatalogueViewController et c'est à partir de ce ViewController que le catalogue doit démarrer.Combinaison de deux applications iphone (1 ViewController, 1 TabBarController)
Outre le menu de démarrage, j'ai écrit l'application pour le catalogue dans une autre application distincte. L'application de catalogue est faite avec un TabBarController, tandis que le menu de démarrage est fait avec ViewControllers réguliers. Ma prochaine étape est de combiner ces deux applications, de sorte que lorsque le bouton de catalogue est pressé, il devrait ouvrir le catalogue. Jusqu'à maintenant, lorsque j'appuyais sur le bouton du catalogue, je créais une instance de mon UICatalogueTableViewController qui est une sous-classe de UITableViewController, et je chargeais mon catalogueView.xib avec.
Le fichier d'en-tête ViewController qui gère quelle vue à afficher:
@class MenuViewController;
@class UICatalogueTableViewController;
@class SettingsViewController;
@class InstructionsViewController;
@interface IkeaViewController : UIViewController {
MenuViewController *menuViewController;
UICatalogueTableViewController *catalogueViewController;
SettingsViewController *settingsViewController;
InstructionsViewController *instructionsViewController;
}
@property (retain, nonatomic) MenuViewController *menuViewController;
@property (retain, nonatomic) UICatalogueTableViewController *catalogueViewController;
@property (retain, nonatomic) SettingsViewController *settingsViewController;
@property (retain, nonatomic) InstructionsViewController *instructionsViewController;
-(IBAction)catalogueButtonPressed:(id)sender;
-(IBAction)settingsButtonPressed:(id)sender;
-(IBAction)instructionsButtonPressed:(id)sender;
@end
La méthode qui est appelée lorsque vous appuyez sur le bouton de catalogue:
- (IBAction)catalogueButtonPressed:(id)sender{
if (self.catalogueViewController.view.superview == nil) {
if (self.catalogueViewController == nil) {
UICatalogueTableViewController *catalogueController = [[UICatalogueTableViewController alloc]initWithNibName:@"CatalogueView" bundle:nil];
self.catalogueViewController = catalogueController;
[catalogueController release];
}
[menuViewController.view removeFromSuperview];
[self.view addSubview:catalogueViewController.view];
}
}
Dans mon fichier .xib (CatalogueView.xib J'ai créé un objet TabBarController et mon propriétaire de fichiers a son identité de classe définie sur UICatalogueTableViewController mais je n'arrive pas à connecter les deux, de sorte que TabBarController soit affiché lors de l'exécution de l'application. Le propriétaire des fichiers nécessite une vue. Lorsque j'appuie sur le bouton paramètres ou instructions dans mon menu de démarrage, il n'y a aucun problème lors de l'instanciation de leur ViewController et du chargement des fichiers .xib, car ils ne contiennent qu'une seule vue à afficher. Comment passer de mon menu de démarrage (un ViewController standard) à mon catalogue (TabBarController)?
Merci d'avance.