2010-12-03 16 views
0

J'ai donc un problème étrange avec mon contrôle segmenté que j'essaie d'utiliser. Essentiellement, j'ai un panneau de préférences qui s'affiche via un popover quand un bouton est poussé. Le problème: J'essaie d'enregistrer l'état de sorte que lorsque la vue est chargée, le contrôle segmenté doit enregistrer son élément sélectionné. Voici ce que je fais jusqu'à présent ...Problème de contrôle segmenté iOS

-(void)viewWillAppear:(BOOL)animated { 

if(!self.mainViewController.isThreaded){ 
    self.threadedView.selectedSegmentIndex == 0; 
    //[self.threadedView setSelectedSegmentIndex:0]; 
      //I can't do this because if I do it, it rexecutes the changeSegment method, 
      // which I do not want 

} 
if(self.mainViewController.isThreaded){ 
    self.threadedView.selectedSegmentIndex == 1; 
    //[self.threadedView setSelectedSegmentIndex:1]; 
} 
//threadedView.momentary = NO; 
} 


-(void)changeSegment { 
if(self.threadedView.selectedSegmentIndex == 0){ 
    self.mainViewController.isThreaded = NO; 
    [self.threadedView setSelectedSegmentIndex:0]; 

} 
if(self.threadedView.selectedSegmentIndex == 1){ 
    self.mainViewController.isThreaded = YES; 
    [self.threadedView setSelectedSegmentIndex:1]; 
} 
} 

maintenant le problème est, lorsque le popover apparaît, il ne charge pas l'état au contrôle segmentée, comme je le comprends devrait. Quelqu'un peut-il souligner ce que je fais mal? Merci

+0

Conservez-vous self (ViewController) après l'avoir fermé? – Vjy

+0

comme lorsque vous appuyez sur le popover (c'est-à-dire la méthode viewDidDisappear?) – gabaum10

Répondre

2

En viewWillAppear, si vous voulez les mettre et ne pas les tester devrait être:

self.threadedView.selectedSegmentIndex = 0/1;

pas

self.threadedView.selectedSegmentIndex == 0/1;, à moins que je me manque quelque chose.

+0

HAHAH wow, comment n'ai-je pas vu que .... LEMME le tester et revenir vers vous. (boude dans la honte) – gabaum10

+0

En fait Cela n'a pas résolu le problème où il est en train de recharger. Il lance toujours la méthode changeSegment lorsque la vue apparaît. Y a-t-il une meilleure manière de faire cela?? – gabaum10

+0

J'ai trouvé une solution de contournement où j'exécute conditionnellement en fonction de si la vue apparaît ou si un bouton est poussé. Merci pour l'aide. – gabaum10