I'm trying to get UIPicker to show a random textline ! I can't get the UITextView part to work, what have I missed ?
code:
----------
.h file:
----------
Code:
#import <UIKit/UIKit.h>
@class PickerView;
@interface jhaGameViewController : UIViewController {
UIPickerView *picker;
NSArray *column1;
}
@property(nonatomic, retain) IBOutlet UIPickerView *picker;
@property(nonatomic, retain) NSArray *column1;
- (IBAction)spin;
@end
------------------
the .m file:
------------------
Code:
#import "jhaGameViewController.h"
@implementation jhaGameViewController
@synthesize picker;
@synthesize column1;
- (IBAction)spin {
int lastVal = -1;
for (int i = 0; i < 1; i++) {
int newValue = random() % [self.column1 count];
if (newValue == lastVal)
lastVal = newValue;
[picker selectRow:newValue inComponent:i animated:YES];
[picker reloadComponent:i];
}
}
- (void)viewDidLoad {
NSString *seven = @"seven";
NSString *bar = @"bar";
NSString *crown = @"crown";
NSString *cherry = @"cherry";
NSString *lemon = @"lemon";
NSString *apple = @"apple";
for (int i = 1; i <= 5; i++) {
UITextView *sevenView = [[UITextView alloc] initWithString:seven];
UITextView *barView = [[UITextView alloc] initWithString:bar];
UITextView *crownView = [[UITextView alloc] initWithString:crown];
UITextView *cherryView = [[UITextView alloc] initWithString:cherry];
UITextView *lemonView = [[UITextView alloc] initWithString:lemon];
UITextView *appleView = [[UITextView alloc] initWithString:apple];
NSArray *imageViewArray = [[NSArray alloc] initWithObjects:
sevenView, barView, crownView, cherryView, lemonView,
appleView, nil];
NSString *fieldName =
[[NSString alloc] initWithFormat:@"column1", i];
[self setValue:imageViewArray forKey:fieldName];
[fieldName release];
[imageViewArray release];
[sevenView release];
[barView release];
[crownView release];
[cherryView release];
[lemonView release];
[appleView release];
}
srandom(time(NULL));
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc. that aren't in use.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.picker = nil;
self.column1 = nil;
}
- (void)dealloc {
[picker release];
[column1 release];
[super dealloc];
}
#pragma mark -
#pragma mark Picker Data Source Methods
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component {
return [self.column1 count];
}
#pragma mark Picker Delegate Methods
- (UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
NSString *arrayName = [[NSString alloc] initWithFormat:@"column1",
component+1];
NSArray *array = [self valueForKey:arrayName];
[arrayName release];
return [array objectAtIndex:row];
}
@end