J'ai une question sur les meilleures pratiques concernant les Nibs et UISegmentedControls.Modification des vues de UISegmentedControl
J'ai un fichier nib qui contient un UISegmentedControl avec 3 boutons. Chacun d'entre eux affiche une vue différente dans la partie principale de la fenêtre lorsqu'il est basculé.
Tout fonctionne bien, mais je soupçonne que mon approche est erronée et je me demandais si quelqu'un pouvait suggérer la façon dont je "voulais" le faire.
Actuellement NIB j'ai 3 UIViews qui sont superposées à une autre, puis dans le fichier .m je modifie chaque UIViews .hidden pour cacher et de révéler celui que je suis intéressé.
- (IBAction)segmentAction:(id)sender
{
if([sender selectedSegmentIndex] == 0)
{
[self.view1 setHidden:NO];
[self.view2 setHidden:YES];
[self.view3 setHidden:YES];
}
else if([sender selectedSegmentIndex] == 1)
{
[self.view1 setHidden:YES];
[self.view2 setHidden:NO];
[self.view3 setHidden:YES];
}
else if([sender selectedSegmentIndex] == 2)
{
[self.view1 setHidden:YES];
[self.view2 setHidden:YES];
[self.view3 setHidden:NO];
}
}
Tout "fonctionne" mais le fichier nib est difficile à modifier car vous ne pouvez pas facilement "éteindre" les autres UIViews, donc je sélectionne invariablement le mauvais élément sur la toile. Aussi IB se plaint que: "Cette vue chevauche l'un de ses frères et soeurs" dans la boîte de dialogue d'information.
Quelle est l'approche que je devrais prendre étant donné que j'aimerais que toutes les vues soient présentées dans InterfaceBuilder. Dois-je avoir 4 fichiers nib? Si oui, comment dois-je les charger quand un segmentControl est pressé? Tout exemple de code que vous pouvez me diriger vers?
grâce
Pouvez-vous clarifier ce que vous entendez par 'make 3 objets UIView distincts, mais ne les ajoutez pas à la hiérarchie de la vue? Et ce que vous entendez par 'créer les 3 vues en faisant glisser chaque vue de la bibliothèque vers la fenêtre intitulée YourNib.nib ou YourXib.xib'. –