You should follow this simple approach.
Add a
UIToolBar
like this.UIBarButtonItem *flexiableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil]; UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil]; NSArray *items = [NSArray arrayWithObjects:item1, flexiableItem, item2, nil]; self.toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, -44, self.view.frame.size.width, 44)]; [self.toolBar setItems:items]; self.toolBar.tintColor = [UIColor whiteColor]; self.toolBar.barTintColor = [UIColor colorWithRed:0.6 green:0.1 blue:0.2 alpha:1]; [self.contentView addSubview:self.toolBar];
Add a Menu Button on Top navigation item
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(toggleMenu:)];
Now Implement
toggleMenu
function. Add aBOOL
variable to track the movement.if(!moved) { [UIView animateWithDuration:0.5 animations:^{ self.toolBar.alpha = 1; self.toolBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44); }]; moved = YES; }else { [UIView animateWithDuration:0.5 animations:^{ self.toolBar.alpha = 1; self.toolBar.frame = CGRectMake(0, -44, self.view.frame.size.width, 44); }]; moved = NO; }
Here is the attached video for this.
Hope that helps.