2011-03-08 6 views
0

J'ai un UISegmentControl qui ne sélectionne rien via IB, après que l'utilisateur a sélectionné le segment qu'il a sélectionné. Comment puis-je le faire pour qu'il ne soit pas sélectionné?Sélection de l'élément SelectSegmentIndex après la sélection

//Show question method 
-(void)question:(NSInteger)i 
{ 
    // Path to the plist 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Question" ofType:@"plist"]; 

    // Set the plist to an array 
    NSArray *array = [NSArray arrayWithContentsOfFile:path]; 

    //Check the number of entries in the array 
    NSInteger numCount = [array count]; 
    if(i <numCount) 
    { NSDictionary *dict = [array objectAtIndex:i];//load array index 0 dictionary data 
     self.title = [NSString stringWithFormat:@"Question %d", i+1];//set the nav bar title 
     quest.text = [dict valueForKey:@"Question"];//Set the Question to storage 
     ans.text = [dict valueForKey:@"Answer"];//Set the Answer to storage 
     NSInteger option = [[dict valueForKey:@"NumberOfOption"] integerValue ];//Check options to determine the question type 

     //check if the option is is a QRCode or Multiple Choices Question 
     if (option ==0) 
     { 
      QRbutton.alpha = 1; //show the QR Code Button If there is no options 
      OptionsAnswer.alpha = 0;//Hide Option if there is no options 
     } 
     else 
     { 
      QRbutton.alpha = 0.0;//Hide QR Code Button if there is options 
      OptionsAnswer.alpha = 1;//Show Option if there is options 
      [OptionsAnswer setTitle:[dict valueForKey:@"Option1"] forSegmentAtIndex:0];//Set Option Answer Value 
      [OptionsAnswer setTitle:[dict valueForKey:@"Option2"] forSegmentAtIndex:1];//Set Option Answer Value 
      [OptionsAnswer setTitle:[dict valueForKey:@"Option3"] forSegmentAtIndex:2];//Set Option Answer Value 
      [OptionsAnswer setTitle:[dict valueForKey:@"Option4"] forSegmentAtIndex:3];//Set Option Answer Value 
      [OptionsAnswer addTarget:self action:@selector(OptionAnswerCheck) forControlEvents:UIControlEventValueChanged];//Call action when options is being selected 
     } 

    } 
    else { 

     //if question is all answered, it will prompt an alert for end game video. 
     UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Well Done" 
                 message:@"You Have Answered All The Questions, Oh Wait A Minute I Heard A Cracking Sound...." delegate:self 
               cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; [alert show];; 
     [alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO]; 

    } 

} 




//Check if the selected Option is correct 
-(IBAction)OptionAnswerCheck 
{ 
    //define a persistant location to save which question has been answered 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];//question storages 

//pass the value from the selected option to a string 
    //NSString * selectedTitle = ([OptionsAnswer selectedSegmentIndex] >= 0) ? [OptionsAnswer titleForSegmentAtIndex:[OptionsAnswer selectedSegmentIndex]] : 
    NSString * selectedTitle = [OptionsAnswer titleForSegmentAtIndex:[OptionsAnswer selectedSegmentIndex]]; 


    NSLog(@"Selected Title = %@",selectedTitle);//test 

    //check if the selected value is equal to the answers 
    if ([selectedTitle compare:self.ans.text] ==NSOrderedSame) 
    { 
     //Popup to say answer Correct 
     UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Correct!" 
                 message:@"Nice Work, Lets Move On To The Next Question" delegate:nil 
               cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; [alert show];; 
     [alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO]; 

     //increase the question number 
     [self question:++currentQuestion]; 
     //save increased question 
     [userDefaults setInteger:currentQuestion forKey:@"currentQuestion"]; 

    } 
    else 
    { 
     //Popup to say answer Wrong 
     UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Incorrect" 
                 message:@"Close! But That's Not Right, Try Another Answer" delegate:nil 
               cancelButtonTitle:@"Try Again." otherButtonTitles:nil] autorelease]; [alert show];; 
     [alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO]; 
    } 
    //OptionsAnswer.selectedSegmentIndex = UISegmentedControlNoSegment; 

} 

Répondre

1

Recherchez simplement setMomentary: dans la documentation de votre développeur dans Xcode.

+0

Salut merci, qui a résolu le problème .... ne est pas un petit coche thx – Desmond

1

Je ne suis pas tout à fait sûr de ce que vous demandez, mais je pense que vous voulez définir la propriété momentary à YES.

La propriété est également dans l'inspecteur de IB. (Impossible de poster une capture d'écran, je suis sur mon iPhone).

+0

Salut merci, qui a résolu le problème .... n'a pas été un petit coche thx – Desmond

Questions connexes