iphone - 使 selectedSegmentIndex 在选择后什么都不选择

标签 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;

}

最佳答案

只需在 Xcode 中的开发人员文档中搜索 setMomentary:

关于iphone - 使 selectedSegmentIndex 在选择后什么都不选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228773/

相关文章:

iphone - createEditableCopyOfDatabaseIfNeeded创建db的空副本!

iphone - 如何在 iPhone UIIMageView 上显示 GIF 图像

swift - 以编程方式从 UiView 推送新 View Controller 的问题

ios - SKTransition crossFadeWithDuration 不再有效

iphone - 在单独的线程上加载表值

iphone - 为什么 Apple 不在 Interface Builder 中包含单选按钮?

ios - "countByEnumeratingWithState:objects:count:"错误

ios - 使用核心数据调用 NSPredicate 中对象的方法

ios - 如何计算iOS中 float 后的位数?

iphone - 增加包含 2 个 UILabel 的自定义 UITableViewCell 的大小