2009-06-09 9 views
1

Je travaille sur une application iPhone mais j'ai trouvé que j'avais besoin d'une autre vue/fenêtre pour que l'utilisateur saisisse et enregistre des données/informations.Application iPhone - ajout d'une autre vue

Comment ajouter une autre vue? Est-ce que je l'ajoute dans le générateur d'interface, puis le lier dans le délégué principal de l'application ou aura-t-il ses propres fichiers .h et .m?

J'ai choisi une application de vue de fenêtre pour commencer, dois-je recommencer avec une application de vue de côté de côté ou peut-il juste être ajouté de toute façon si j'ai le code correct là.

manny grâce

Carl

Répondre

5

L'application de la fenêtre est parfait pour vous. Dans votre fichier AppDelegate, vous devriez avoir une section comme ceci:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    //instantiate the venue view controller object 
    YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]]; 

    // Configure and show the window 
    [window addSubview:[yourViewController view]]; 
    [window makeKeyAndVisible]; 

} 

Ceci est la partie du code qui déclare, Alloue et ajoute votre vue personnalisée à la fenêtre. Vous avez quelques choix pour ajouter la deuxième vue. Vous pouvez soit l'ajouter à la place de celui-ci, soit l'ajouter après celui-ci en utilisant un contrôleur de navigation. Pour ajouter le contrôleur de navigation, changer la méthode ci-dessus pour ressembler à ceci:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

//instantiate the venue view controller object 
YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]]; 
    UINavigationController *yourViewControllerWrapper = [[UINavigationController alloc] initWithRootViewController: yourViewController]; 



// Configure and show the window 
[window addSubview:[yourViewControllerWrapper view]]; 
[window makeKeyAndVisible]; 

} 

Là, nous créons votre vue personnalisée, puis l'envelopper dans un contrôleur de navigation. Le contrôleur de navigation est ce qui est ajouté à la fenêtre. Suivant le code pour passer à la deuxième vue ressemblerait à ceci, en supposant que vous changez de vue sur une presse bouton:

-(IBAction)switchViewController{ 
    MySecondViewController *secondViewController = [[MySecondViewController alloc] init]; 

    [self.navigationController pushViewController:secondViewController]; 
} 

Bien sûr, vous devez remplacer la ligne

MySecondViewController *secondViewController = [[MySecondViewController alloc] init]; 

avec la bonne façon de instancier votre deuxième contrôleur de vue. Cela peut provenir d'un fichier nib comme ci-dessus, ou par programmation.

En ce qui concerne la création des fichiers de vue, vous devez créer une pointe dans Interface Builder pour la mise en page de tout, puis créez un fichier .h et .m pour le code ViewController lui-même.

+0

Merci pour votre aide, je vais essayer ça – carl

1

Vous pouvez également afficher une nouvelle image au lieu d'une nouvelle vue. Il est parfois plus facile, comme vous ne t doivent passer des paramètres - vous êtes dans une classe:

CGRect frame = okresView.frame; 
frame.origin.x = frame.size.width; 
if ([okresView superview] == nil) 
{ 
[self.view addSubview:okresView]; 
} 

okresView.frame = frame; 
[okresDataTableView reloadData]; // przeładowanie tabeli na subwidoku 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.5]; 
frame.origin.x = 0; 
okresView.frame = frame; 
[UIView commitAnimations]; 

si vous voulez que les nouveaux sous-vue, vous pouvez utiliser quelques méthodes - il suffit de télécharger quelques applications de l'aide XCode et vérification comment ils font cela. Un bel exemple est dans les applications 'Elements' et 'UICatalog' où vous avez retourné la vue et d'autres exemples.

// Créer et pousser un autre contrôleur de vue. UIViewController * myViewController = [[UIViewController alloc] init]; myViewController.title = @ "Ma première vue"; myViewController.view.backgroundColor = [UIColor redColor];

// pour pousser l'UIView. [self.navigationController pushViewController: myViewController animé: OUI];

Questions connexes