当有人选错了答案时显示正确的答案

时间:2014-02-01 14:57:42

标签: ios objective-c

好的,所以我是objective-c的新手,并使用了几个不同的教程来构建我的第一个测验应用程序。我完成了它并且我有点满意..然后我意识到,如果有人选择了错误的答案,它并没有向他们展示正确的答案。所以我一直试图弄清楚它。所以我创建了一个新的标签,在选择答案之前一直保持隐藏状态。

我可以使用if语句,可以使用我设置按钮的文本吗?例如:

switch (QuestionSelected) {
    case 0:
        QuestionText.text = [NSString stringWithFormat:@"Question One"];
        [Answer1 setTitle:@"Answer number 1" forState:UIControlStateNormal];
        [Answer2 setTitle:@"Answer number 2" forState:UIControlStateNormal];
        [Answer3 setTitle:@"Answer number 3" forState:UIControlStateNormal];
        [Answer4 setTitle:@"Answer number 4" forState:UIControlStateNormal];
        Answer1Correct = YES;
        break;

这是该类别中的问题。我的答案1-4是按钮。 Answer1Correct(取决于答案)是一个BOOL语句。

是否有一行我可以在if语句中使用

if (Answer1Correct == YES) {
    CorrectAnswer.text = [NSstring stringWithFormat:"@?", Answer1]; (The question mark would be for text the button was set to. I know that @i, can be used for integers but I don't know if I can use the text a button was set to)

我知道这不起作用,但我试图围绕很多贵重物品的运作方式。例如,我看到的问题是在我的问题中我有BOOL,并且它激活BOOL的唯一方法取决于他们选择的内容。例如,如果他们在之前的陈述中选择了Answer2,那么它只会设置错误答案,因为这就是我对按钮的看法

-(IBAction)Answer1:(id)sender{

if (Answer1Correct == YES) {
    [self RightAnswer];
}
else{
    [self WrongAnswer];
}

然后对于以下三个按钮也是如此。

我知道我可能到处都是,但我开始这个的原因是试图学习如何理解它。那么如何在选择错误时确定哪些是正确的,以及如何相应地制作标签。我不是要求用汤匙喂食,这是我的第一个功能齐全的应用程序,除了我自己试图把事情放在一起并了解事情如何协同工作之外,并没有真正的完整目的。所以一点点解释或者我可以在哪里读到正在发生的事情将会更加受到赞赏,然后只是一个答案。我可能需要提供更多信息,所以如果我问的是没有意义,请问。谢谢你们的帮助。

1 个答案:

答案 0 :(得分:1)

在没有看到所有代码的情况下很难,但是一种方法是为每个问题设置一个具有正确值的数组,以便为​​此设置强引用,以确保它不被dealloc'd弧。

你的.h

中的

@property (nonatomic, strong)NSArray *correctAnswersArray;
@property (nonatomic, strong) IBOutlet UILabel *myLabelForIncorrectAnswer;
你的.m

中的

-(void)viewDidLoad{
self.correctAnswersArray   = [[NSArray alloc]initWithObjects:@"answer one", @"answer two", @"answer three", @"answer four",nil];
}

这可以使用

进行参考
self.correctAnswersArray[i];

其中'i'是数组所需的int值 - 请注意,数组从0开始编制索引

关于您当前的条件语句,您可以在确认答案是正确还是不正确时使用数组设置标签文本,以便

if (Answer1Correct == YES) {
            [self RightAnswer];
        }
        else{
            [self WrongAnswer];
self.myLabelForIncorrectAnswer.text = self.correctAnswersArray[0];
        }
修复每个'else'条件

的数组索引号的每个条件的

等等