0

J'ai un UISegmentControl dans mon application et j'essaie de le faire changer de vue comme le magasin d'applications. Ive essayé ce code avec aucune chance:Commutateur UISegmentControl?

- (IBAction)segmentSwitch:(id)sender { 
    UISegmentedControl *segmentedControl = (UISegmentedControl *) sender; 
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex; 

    if (selectedSegment == 0) { 
    //toggle the correct view to be visible 
    [firstView setHidden:NO]; 
    [secondView setHidden:YES]; 
    } 
    else{ 
    //toggle the correct view to be visible 
    [firstView setHidden:YES]; 
    [secondView setHidden:NO]; 
    } 
} 

Est-ce que quelqu'un sait comment je pourrais changer de vue? Toute aide est appréciée. Merci

Répondre

1

Ce code fonctionnera tant que les deux vues sont actuellement sous-vues d'une vue parente visible (ou fenêtre).

En outre, vous pouvez simplifier votre IBAction un peu comme ceci:

- (IBAction)segmentSwitch:(UISegmentedControl*)segmentedControl { 
    //UISegmentedControl *segmentedControl = (UISegmentedControl *) sender; 
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex; 
+0

Ce ne sont pas des sous-vues. Y at-il un moyen de dire List1Controller pour le premier à apparaître et List2Controller à apparaître pour la seconde? – Tanner

+0

Toutes les vues sauf la fenêtre sont des sous-vues. Je ne comprends pas cette nouvelle question. Même si les vues ont des contrôleurs de vue, votre code fonctionnera toujours. Assurez-vous d'utiliser la propriété "view" du contrôleur de vue (et ajoutez-les en tant que sous-vues à une vue/fenêtre actuellement visible). – gerry3

0

Il serait utile de savoir ce que ne se produire lorsque ce code est exécuté et ce que le point de départ est-- est firstView déjà visible , et y a-t-il un effet quand le code fonctionne?

Si firstView est visible mais que le code ne le cache jamais, je suspecte que la variable "firstView" n'est pas réellement connectée à la vue. Vous dites à FirstView de se cacher, donc si la vue ne se cache jamais, "firstView" est probablement nul. Définissez un point d'arrêt dans cette méthode et vérifiez à la fois firstView et secondView pour vous assurer qu'ils contiennent des références aux vues que vous souhaitez manipuler.