2010-09-20 6 views
1

Je crée une application avec un UIViewController et de nombreux UIViews. J'ai MainViewController avec un UIView en dessous qui s'affiche quand chargé et quelques autres UIViews tous dans le MainWindow.xib. Comment puis-je passer d'une vue à l'autre?Un UIViewController avec de nombreuses UIViews

Mise à jour:

Merci pour la réponse.

J'ai ajouté MainViewController à mon appDelegate.

Sur FinishedLaunching: [window addSubview:[viewController view]];

Ce View Controller a une fonction qu'il a appelé goToNextPage.

-(IBAction)goToNextPage:(id)sender{ 

[self.view removeFromSuperview]; 
[self.view addSubview:tableOfContents]; 

}

Dans Interface Builder j'ai que View Controller ajouté à MainWindow.xib. Sous ce contrôleur de vue j'ai un UIView (appelé Cover) qui charge comme son enfant au démarrage et un autre UIView (éventuellement beaucoup) nommé TableOfContents qui est seul.

J'ai essayé d'afficher une image de mon MainWindow.xib ici mais apparemment ma réputation n'est pas assez élevée.

La couverture UIView comporte un bouton lié à la fonction goToNextPage. Lorsque j'appuie sur le bouton, la page devient vide, comme si la première vue était supprimée mais que la suivante n'était pas chargée.

Comment obtenir la fonction goToNextPage pour basculer la couverture UIView préchargée avec l'autre UIView appelée TableOfContents?

Une autre Edit:

BookTest6AppDelegate.h:

#import <UIKit/UIKit.h> 

@class MainViewController; 

@interface BookTest6AppDelegate : NSObject <UIApplicationDelegate> { 

    UIWindow *window; 
    IBOutlet MainViewController *viewController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet MainViewController *viewController; 

@end 

BookTest6AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Override point for customization after application launch. 

[window addSubview:[viewController view]]; 
[window makeKeyAndVisible]; 

return YES; 

}

MainViewController.h

#import <UIKit/UIKit.h> 

@class TableOfContents; 

@interface MainViewController : UIViewController { 

    IBOutlet TableOfContents *tableOfContents; 
} 

@property (nonatomic, retain) IBOutlet TableOfContents *tableOfContents; 

-(IBAction)fGoToTableOfContentsController:(id)sender; 
-(IBAction)fGoToNextPageController:(id)sender; 

@end 

MainViewController.m

#import "MainViewController.h" 
#import "TableOfContents.h" 

@implementation MainViewController 

@synthesize tableOfContents; 

-(IBAction)fGoToTableOfContentsController:(id)sender{ 

    [self.view removeFromSuperview]; 
    [self.view addSubview:self.tableOfContents]; 

} 

-(IBAction)fGoToNextPageController:(id)sender{ 

} 

Mes UIView classes fondamentalement juste des boutons qui pointent Initié aux fonctions définies dans MainViewController.h.

Répondre

2

Vous devez d'abord savoir quand vous passez d'un à l'autre. Puis vous le dites à votre MainController et à AddSubView à mainController.view une autre vue.

Peut-être que si vous nous donnez plus d'informations ou un code nous pouvons vous aider un peu plus :-)

Bonne chance
Vincent

Edit:

[self.view removeFromSuperview];

Ici vous retirez la vue de la fenêtre. Je pense que ce n'est pas le meilleur moyen ^^ Essayez

[ viewController.view removeFromSuperview ];
:-)

Est-ce que ça marche mieux?

Edit: Modifier bis: han, c'est ma faute. Vous devez supprimer le contrôleur et ajouter un autre dans le délégué de l'application et non dans votre mainController (vous pouvez le faire aussi, mais pas avec votre code réel). Vous avez deux options: 1 °) Déclarez tous les contrôleurs de votre délégué de l'application. 2 °) Déclarez tous vos contrôleurs dans un contrôleur principal. Mais le contrôleur principal serait là pour "contrôler" les autres.

+0

Merci pour la réponse. – emachine

+0

J'ai modifié ma question si vous souhaitez y jeter un autre coup d'œil. Merci – emachine

+0

J'ai laissé un autre montage avec la plupart de mon code dedans. De votre exemple, je devrais initier un autre objet viewController. Est-ce exact? – emachine

Questions connexes