Mercurial > hg > soniczoomios
view QuestionnaireViewController.m @ 15:e45c3e631d20
View fiddling
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Thu, 17 Jan 2013 13:01:19 +0000 |
parents | 6a9191f5b269 |
children |
line wrap: on
line source
// // QuestionnaireViewController.m // oscSenderExample // // Created by Robert Tubb on 16/01/2013. // // #import "QuestionnaireViewController.h" @interface QuestionnaireViewController () // the "model" is an array of questions @property (strong, nonatomic) NSArray * questionArray; @property (strong, nonatomic) NSArray * answerArray; @property (nonatomic) NSInteger currentQuestionIndex; /* */ @end @implementation QuestionnaireViewController //---------------------------------------------------------------- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization [self populateQuestionArray ]; } return self; } //---------------------------------------------------------------- - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. self.currentQuestionIndex = 0; // load question 1 [self loadQuestion:self.currentQuestionIndex]; } //---------------------------------------------------------------- - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } //---------------------------------------------------------------- - (void)dealloc { [_questionText release]; [_titleText release]; [super dealloc]; } //---------------------------------------------------------------- - (void)viewDidUnload { [self setAnswerPressed:nil]; [self setQuestionText:nil]; [self setTitleText:nil]; [super viewDidUnload]; } //---------------------------------------------------------------- - (IBAction)answerWasSelected:(id)sender { // look at property? } //---------------------------------------------------------------- -(IBAction)hide:(id)sender{ self.view.hidden = YES; } //---------------------------------------------------------------- -(IBAction)show:(id)sender{ self.view.hidden = NO; } //---------------------------------------------------------------- - (IBAction)nextQuestionPressed:(id)sender { // save answer ? no button did that hopefully // if last question show thanks // else go to next self.currentQuestionIndex++; if(self.currentQuestionIndex >= [self.questionArray count]){ [self showThanks]; }else{ [self loadQuestion:self.currentQuestionIndex]; } } - (IBAction)previousQuestionPressed:(id)sender { self.currentQuestionIndex--; if(self.currentQuestionIndex < 0){ // nothing self.currentQuestionIndex = 0; }else{ [self loadQuestion:self.currentQuestionIndex]; } } //---------------------------------------------------------------- - (void)showThanks{ // hide next question button // hide selector self.titleText.text = @"Thank you!"; self.questionText.text = @"Thanks for helping science help you. Visit the study website to keep abreast of exciting events."; } /* - (IBAction)previousQuestionPressed:(id)sender { self.currentQuestionIndex--; if(self.currentQuestionIndex > [self.questionArray count]){ [self showThanks]; } [self loadQuestion:self.currentQuestionIndex]; } */ //---------------------------------------------------------------- - (void)loadQuestion:(NSInteger)questionIndex { // populate text fields with question NSString *qtitle; qtitle = [@"Question " stringByAppendingFormat:@"%d",questionIndex+1]; self.titleText.text = qtitle; self.questionText.text = [self.questionArray objectAtIndex:questionIndex]; // if question already answered show that } //---------------------------------------------------------------- - (void)populateQuestionArray{ self.questionArray = [[NSArray alloc] initWithObjects: @"I am familiar with music software and synthesisers.", @"The best way to get a feel for the possibilities of the synth was with:", @"Interesting sounds could be discovered more quickly as a result of using:", @"A sound could be fine tuned more easily using:", @"The correspondence between the sliders and the grid was understandable.", @"The interface that felt more familiar was:", @"Scrolling a greater distance the zoom grid seemed to correspond to larger difference in the sound.", @"The ability to see other presets on the grid was useful.", @"The range of sounds was too limited to be able to judge the eventual usefulness of the interface.", @"The interface better for generating new ideas was", @"The interface better for live performance would be:", @"A specific type of sound could be found more quickly using:", @"I felt more in control when using:", @"The Zoomer was an improvement on just using a randomiser.", @"The combination of Zoomer and Sliders was more useful than either individually.", @"Overall, I preferred using:", nil]; } //---------------------------------------------------------------- @end // end implementation