Do the following
In the SHOW Cancel button:
- (void)showCancelButton { UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(someMethod)]; [self navigationItem] setLeftBarButtonItem:cancelButton]; [cancelButton release]; }
To Hide the Cancel button:
- (void)hideCancelButton { [self navigationItem] setLeftBarButtonItem:nil]; }
Make sure self.navigationController.navigationItem.hidesBackButton is NOT .
source share