| #import "SkOptionListController.h" |
| |
| @implementation SkOptionListController |
| |
| @synthesize fOptions, fSelectedIndex, fSelectedCell, fParentCell; |
| |
| #pragma mark - |
| #pragma mark Initialization |
| |
| - (id)initWithStyle:(UITableViewStyle)style { |
| self = [super initWithStyle:style]; |
| if (self) { |
| self.fOptions = [[NSMutableArray alloc] init]; |
| self.fSelectedIndex = 0; |
| self.fSelectedCell = nil; |
| } |
| return self; |
| } |
| |
| - (void)addOption:(NSString*)option { |
| [fOptions addObject:option]; |
| } |
| |
| - (NSString*)getSelectedOption { |
| return (NSString*)[fOptions objectAtIndex:self.fSelectedIndex]; |
| } |
| |
| #pragma mark - |
| #pragma mark Table view data source |
| |
| - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { |
| return 1; |
| } |
| |
| - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { |
| return [fOptions count]; |
| } |
| |
| - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
| |
| static NSString *CellIdentifier = @"Cell"; |
| |
| UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; |
| if (cell == nil) { |
| cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; |
| } |
| |
| cell.textLabel.text = [fOptions objectAtIndex:indexPath.row]; |
| if (indexPath.row == fSelectedIndex) { |
| cell.accessoryType = UITableViewCellAccessoryCheckmark; |
| self.fSelectedCell = cell; |
| } |
| else |
| cell.accessoryType = UITableViewCellAccessoryNone; |
| |
| return cell; |
| } |
| |
| #pragma mark - |
| #pragma mark Table view delegate |
| |
| - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { |
| UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath]; |
| self.fSelectedCell.accessoryType = UITableViewCellAccessoryNone; |
| self.fSelectedCell = cell; |
| cell.accessoryType = UITableViewCellAccessoryCheckmark; |
| self.fParentCell.detailTextLabel.text = cell.textLabel.text;; |
| self.fSelectedIndex = indexPath.row; |
| [self.navigationController popViewControllerAnimated:YES]; |
| } |
| |
| - (void)dealloc { |
| self.fOptions = nil; |
| self.fSelectedCell = nil; |
| [super dealloc]; |
| } |
| |
| @end |