如何为一个特定的故事板指定标签?

时间:2014-08-11 19:58:26

标签: objective-c xcode storyboard nsarray label

基本上我正在制作一个应用程序(一个简单的游戏),使用故事板,屏幕上会弹出一个问题,用户必须回答它。他们可以选择进入下一个问题或记录他们的回答。我创建了一个NSArray,它有一个问题列表,我希望它们随机出现在标签中(标签会随机选择NSArray中的一个问题来显示)。我想要这样做的方式是每个故事板都有一个问题,所以一旦一个问题得到解答,你就可以进入下一个故事板,下一个问题将显示在标签中。每个故事板中的标签都是相同的(从同一个NSArray中挑选问题),但如何将已编码的标签连接到特定的故事板。

问题在于:

第一张图片显示了您可以选择难度的第一个故事板,但我不希望标签(“问题4?”)显示在此故事板上。我希望它能在第二张图片中的故事板上显示

(图片1) - http://tinypic.com/r/149nuo0/8

(图2) - http://tinypic.com/r/fk9yls/8

我的问题是如何让标签停止显示在第一张图片上(我项目中的这个特定故事板)?

这是我的代码:

.h文件

    #import <UIKit/UIKit.h>

    @interface ViewController : UIViewController
    {
        NSArray *questionArray;
        UILabel *questionLabel;
    }


@property (weak, nonatomic) IBOutlet UILabel *questionLabel;

@end

.m文件

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    //create question array
    questionArray = [NSArray arrayWithObjects:@"Question 1?", @"Question 2?", @"Question 3?", @"Question 4?", @"Question 5", @"Question 6", @"Question 7", @"Question 8", nil];

    //random a question
    int lowerBound = 0;
    int upperBound = [questionArray count] - 1;
    int randomValue = lowerBound + arc4random() % (upperBound - lowerBound);

    //create UILabel
    questionLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 70)];
    [questionLabel setTextAlignment:NSTextAlignmentCenter];
    [questionLabel setText:[questionArray objectAtIndex:randomValue]];
    [self.view addSubview:questionLabel];


}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

我是编程新手,所以任何帮助都会非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个。

1)在故事板中创建2个视图控制器。将该视图控制器的类设置为您创建的类名。

在这里,我为SecondViewController设置了类。

enter image description here

2)删除ViewController .h.m {/ 1}}中的所有代码。

3)连接SecondViewController中的属性。

enter image description here

4)SecondViewController代码:

#import "SecondViewController.h"

@interface SecondViewController ()
{
    NSArray *questionArray;
}

@end

@implementation SecondViewController


- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    questionArray = [NSArray arrayWithObjects:@"Question 1?", @"Question 2?", @"Question 3?", @"Question 4?", nil];

    //random a question
    int lowerBound = 0;
    int upperBound = [questionArray count] - 1;
    int randomValue = lowerBound + arc4random() % (upperBound - lowerBound);

    //create UILabel
    [self.questionLabel setTextAlignment:NSTextAlignmentCenter];
    [self.questionLabel setText:[questionArray objectAtIndex:randomValue]];
    [self.view addSubview:self.questionLabel];
}

- (IBAction)nextQuestionButtonClicked:(id)sender {

    //random a question again
    int lowerBound = 0;
    int upperBound = [questionArray count] - 1;
    int randomValue = lowerBound + arc4random() % (upperBound - lowerBound);

    [self.questionLabel setText:[questionArray objectAtIndex:randomValue]];
}

@end