динамический способ сделать анкету в iphone - PullRequest
0 голосов
/ 06 января 2011

мне удалось прочитать мой вопрос из моего question.plist для вопросов и ответов.

self.view.backgroundColor = [UIColor colorWithRed:99.0/255.0 green:162.0/255.0 blue:223.0/255.0 alpha:1.0];
self.title = @"Game"; //Set title.  

// Path to the plist (in the application bundle)
NSString *path = [[NSBundle mainBundle] pathForResource:
                  @"Question" ofType:@"plist"];

NSArray *array = [NSArray arrayWithContentsOfFile:path];

NSDictionary *dict = [array objectAtIndex:0];
questionlabel.text = [dict valueForKey:@"Question"];

здесь кнопка для вызова сканера QR-кода, после сканирования она проверит, является ли ответ правильным или неправильным, и направит пользователя к другому вопросу в файле question.plist (objectAtIndex: 1), если он верен, если нет, он появится и показ неправильный

Я могу сделать это статическим способом, добавив еще несколько ксиб, чтобы создать другой вопрос статически, однако я знаю, что это трудный способ сделать это. Кто-нибудь знает, как я могу сделать это динамически?

спасибо заранее

Десмонд

1 Ответ

1 голос
/ 15 июля 2011

Какое отношение имеет сканер QR-кода к чему-либо?Я думаю, что это не совсем относится к вашему вопросу, поэтому я расскажу только то, что вы спрашиваете.Сканирование QR-кода не является частью iOS и предоставляется внешними библиотеками.

Добавьте целое число i-var в контроллер представления:

@interface WhateverYouNamedYourViewController : UIViewController {
    // ....
    int currentQuestion;
    // ....
}
// ....
@end

Затем при загрузке вопроса иобновляя пользовательский интерфейс, используйте этот i-var для создания строки NSS, из которой вы будете загружать вопрос.

NSString *questionFileName = [NSString stringWithFormat:
                              @"Question%d", currentQuestion];

NSString *path = [[NSBundle mainBundle] pathForResource:questionFileName 
                                                 ofType:@"plist"];

В качестве альтернативы рассмотрите возможность хранения всех вопросов в одном списке, корнем которого является массив.Затем используйте метод NSArray -objectAtIndex:, чтобы получить текущий вопрос (просто передайте currentQuestion в качестве первого аргумента).

В любом случае, место, где вы проверяете правильность ответа (в тесте) или там, где вы записываете ответ (в вопроснике), потребуется обновить текущий вопрос и обновить пользовательский интерфейс:

currentQuestion++;
[self updateUI];

Обновление пользовательского интерфейса считывает следующий вопрос и соответствующим образом обновляет метки и кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...