使selectedSegmentIndex在选择后不选择任何内容

时间:2011-03-08 05:39:38

标签: iphone xcode ios

我有一个UISegmentControl,在用户选择它被选中的段后,不通过IB选择任何内容。我该怎么做才能不被选中?

//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;

}

2 个答案:

答案 0 :(得分:1)

我不完全确定你在这里问的是什么,但我认为你想将momentary属性设置为YES

该物业也在IB的检查员。 (无法发布截图,我在我的iPhone上)。

答案 1 :(得分:1)

只需在Xcode内的开发者文档中搜索setMomentary: