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