Menu for Selecting Chart Type

Description: implements a menu for selecting chart type.

The Menu.h File

#import "MenuTableController.h"
#import "SelectedCellAction.h"
@interface Menu : UIViewController<SelectedCellAction>
{
    MenuTableController *menuTableController;
    UIToolbar *bar;
    id<SelectedCellAction> _delegate;
}
- (UIToolbar *) createToolBar;
- (void ) back;
@property (nonatomic,assign) id<SelectedCellAction> delegate;
@end

The Menu.m File

#import "Menu.h"
@implementation Menu
@synthesize delegate = _delegate;
- (id)init
{
    self = [super init];
    if (self) {
        self.view.frame = CGRectMake(50, 50, 300, 500);
        [self.view setBackgroundColor:[UIColor blackColor]];
        bar = [self createToolBar];
        [self.view addSubview:bar];
        menuTableController = [[MenuTableController alloc] initWithStyle:UITableViewStylePlain];
        menuTableController.tableView.frame = CGRectMake(2, 40, 296, 458);
        menuTableController.delegate = self;
        [self.view addSubview:menuTableController.tableView];
    }
    return self;
}
- (void )selectedItemWithIndex:(NSInteger)index
{
    if(_delegate)
    {
        [_delegate selectedItemWithIndex:index]; // Pass selected cell index to delegate
        [self back]; // Menu close function
    }
}
- (UIToolbar *)createToolBar
{
    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
    [toolBar setBarStyle:UIBarStyleBlack];
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(back)];
    toolBar.items = [NSArray arrayWithObjects:backButton, nil ];
    return [toolBar autorelease];
}
- (void ) back
{
    [self.view removeFromSuperview];
}
- (void )didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
#pragma mark - View lifecycle
- (void )viewDidLoad
{
    [super viewDidLoad];
}
- (void )viewDidUnload
{
    [super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}
@end

See also:

Dynamic Change of Chart Type and Parameters