Menu Control Object

Description: properties and methods for working with menu.

The MenuTableController.h File

#import "SelectedCellAction.h"
@interface MenuTableController : UITableViewController
{
    NSArray *data;
    id<SelectedCellAction> _delegate;
}
@property (nonatomic,assign) id<SelectedCellAction> delegate;
@end

The MenuTableController.m File

#import "MenuTableController.h"
@implementation MenuTableController
@synthesize delegate = _delegate;
- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        data = [[NSArray arrayWithObjects:@"Column absolute",
                 @"Column additional",
                 @"Column percent",
                 @"Bar absolute",
                 @"Bar additional",
                 @"Bar percent",
                 @"Line absolute",
                 @"Line additional",
                 @"Line percent",
                 @"Area absolute",
                 @"Area additional",
                 @"Area percent",
                 @"Pie",
                 @"Doughnut", nil] retain];
    }
    return self;
}
- (void )didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
#pragma mark - View lifecycle
- (void )viewDidLoad
{
    [super viewDidLoad];
}
- (void )viewDidUnload
{
    [data release];
    [super viewDidUnload];
}
- (void )viewWillAppear:(BOOL )animated
{
    [super viewWillAppear:animated];
}
- (void )viewDidAppear:(BOOL )animated
{
    [super viewDidAppear:animated];
}
- (void )viewWillDisappear:(BOOL )animated
{
    [super viewWillDisappear:animated];
}
- (void )viewDidDisappear:(BOOL )animated
{
    [super viewDidDisappear:animated];
}
- (BOOL )shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [data count];
}
- (void )tableView:(UITableView *) tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(_delegate)
        [_delegate selectedItemWithIndex:indexPath.row]; // Pass selected element number to menu
}
- (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 setBackgroundColor:[UIColor grayColor]];
        cell.textLabel.text = [data objectAtIndex:indexPath.row];
    }
    cell.textLabel.text = [data objectAtIndex:indexPath.row];
    return cell;
}
@end

See also:

Dynamic Change of Chart Type and Parameters