1#import "SkOptionListController.h"
2
3@implementation SkOptionListController
4
5@synthesize fOptions, fSelectedIndex, fSelectedCell, fParentCell;
6
7#pragma mark -
8#pragma mark Initialization
9
10- (id)initWithStyle:(UITableViewStyle)style {
11    self = [super initWithStyle:style];
12    if (self) {
13        self.fOptions = [[NSMutableArray alloc] init];
14        self.fSelectedIndex = 0;
15        self.fSelectedCell = nil;
16    }
17    return self;
18}
19
20- (void)addOption:(NSString*)option {
21    [fOptions addObject:option];
22}
23
24- (NSString*)getSelectedOption {
25    return (NSString*)[fOptions objectAtIndex:self.fSelectedIndex];
26}
27
28#pragma mark -
29#pragma mark Table view data source
30
31- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
32    return 1;
33}
34
35- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
36    return [fOptions count];
37}
38
39- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
40
41    static NSString *CellIdentifier = @"Cell";
42
43    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
44    if (cell == nil) {
45        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
46    }
47
48    cell.textLabel.text = [fOptions objectAtIndex:indexPath.row];
49    if (indexPath.row == fSelectedIndex) {
50        cell.accessoryType = UITableViewCellAccessoryCheckmark;
51        self.fSelectedCell = cell;
52    }
53    else
54        cell.accessoryType = UITableViewCellAccessoryNone;
55
56    return cell;
57}
58
59#pragma mark -
60#pragma mark Table view delegate
61
62- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
63    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
64    self.fSelectedCell.accessoryType = UITableViewCellAccessoryNone;
65    self.fSelectedCell = cell;
66    cell.accessoryType = UITableViewCellAccessoryCheckmark;
67    self.fParentCell.detailTextLabel.text = cell.textLabel.text;;
68    self.fSelectedIndex = indexPath.row;
69    [self.navigationController popViewControllerAnimated:YES];
70}
71
72- (void)dealloc {
73    self.fOptions = nil;
74    self.fSelectedCell = nil;
75    [super dealloc];
76}
77
78@end
79