Hello every one i'm trying to add two different actions for a single UIButton. In my view there are two UIButtons like "Edit" and "New" has different actions and a table view. When i click the edit button it shows editing option of the table view and the "New" button title label changes to "clear" and "Edit" to "Done", when i clicked the "Clear" text it will show alert, clicking the cancel button it goes to normal previous state. Up to this all are working fine. If we click "New" it should navigate to next view, but what i'm getting is its displaying editing options and also navigating to next view.
//Editing table method
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[messagesTableView setEditing:editing animated:YES];
}
//button actions and methods
- (IBAction)editButtonAction:(id)sender
{
if ([editButton.titleLabel.text isEqualToString:@"Edit"])
{
[self setEditing:YES];
//
[editButton setTitle:@"Done" forState:UIControlStateNormal];
[editButton setTitle:@"Done" forState:UIControlStateSelected];
[createNewMessageBtn setTitle:@"Clear" forState:UIControlStateNormal];
[createNewMessageBtn setTitle:@"clear" forState:UIControlStateSelected];
createNewMessageBtn.tag = 2;
createNewMessageBtn.enabled = YES;
createNewMessageBtn.userInteractionEnabled = YES;
// [self.voicemailTable reloadData];
}
else if ([editButton.titleLabel.text isEqualToString:@"Done"])
{
[self setEditing:NO];
//
[editButton setTitle:@"Edit" forState:UIControlStateNormal];
[editButton setTitle:@"Edit" forState:UIControlStateSelected];
[createNewMessageBtn setTitle:@"New" forState:UIControlStateNormal];
[createNewMessageBtn setTitle:@"New" forState:UIControlStateSelected];
createNewMessageBtn.tag = 1;
createNewMessageBtn.enabled = YES;
createNewMessageBtn.userInteractionEnabled = YES;
// [self.voicemailTable reloadData];
}
//
[self.messagesTableView reloadData];
}
- (IBAction)newConverstionBtnActn:(id)sender
{
if ([sender tag] == 1)
{
[self setEditing:NO];
NSLog(@"tag---%ld",(long)[sender tag]);
[self.editButton setTitle:@"Edit" forState:UIControlStateNormal];
[self.editButton setTitle:@"Edit" forState:UIControlStateSelected];
[self.createNewMessageBtn setTitle:@"New" forState:UIControlStateNormal];
[self.createNewMessageBtn setTitle:@"New" forState:UIControlStateSelected];
createNewMessageBtn.enabled = YES;
createNewMessageBtn.userInteractionEnabled = YES;
[self performSegueWithIdentifier:@"newMessage" sender:self];
}
else if ([sender tag] == 2)
{
NSLog(@"tag---%ld",(long)[sender tag]);
[self.createNewMessageBtn setTitle:@"New" forState:UIControlStateNormal];
[self.createNewMessageBtn setTitle:@"New" forState:UIControlStateSelected];
createNewMessageBtn.enabled = YES;
createNewMessageBtn.userInteractionEnabled = YES;
transparentView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 300, 540)];
transparentView.backgroundColor = [UIColor clearColor];
[self.view addSubview: transparentView];
//
clearAllOption = [[UIButton alloc]initWithFrame: CGRectMake(5, 430, 310, 39)];
clearAllOption.layer.borderColor = [[SupportFeatures getColorFromHexStr:@"FD8646"] CGColor];
clearAllOption.layer.borderWidth = 2;
clearAllOption.layer.cornerRadius = 6;
[clearAllOption setTitle:@"Clear All Messages" forState:UIControlStateNormal];
[createNewMessageBtn setTitleColor:[SupportFeatures getColorFromHexStr:@"555562"] forState:UIControlStateNormal];
self.clearAllOption.titleLabel.font = [UIFont fontWithName:@"Lato-Regular" size:15];
[clearAllOption setBackgroundColor:[SupportFeatures getColorFromHexStr:@"FD8646"]];
[clearAllOption addTarget:self action:@selector(clearAllContactsAction) forControlEvents:UIControlEventTouchUpInside];
//[self.view addSubview: clearAllOption];
[self.transparentView addSubview: clearAllOption];
//
cancelOption = [[UIButton alloc]initWithFrame: CGRectMake(5, 480, 310, 39)];
cancelOption.layer.borderColor = [[SupportFeatures getColorFromHexStr:@"4BBAC7"] CGColor];
cancelOption.layer.borderWidth = 2;
cancelOption.layer.cornerRadius = 6;
[cancelOption setTitle:@"Cancel" forState:UIControlStateNormal];
cancelOption.titleLabel.font = [UIFont fontWithName:@"Lato-Regular" size:15];
[cancelOption setTitleColor:[SupportFeatures getColorFromHexStr:@"555562"] forState:UIControlStateNormal];
[cancelOption setBackgroundColor:[SupportFeatures getColorFromHexStr:@"4BBAC7"]];
[cancelOption addTarget:self action:@selector(cancelContactsAction) forControlEvents:UIControlEventTouchUpInside];
//[self.view addSubview: cancelOption];
[self.transparentView addSubview: cancelOption];
//
self.editButton.userInteractionEnabled = NO;
// self.createNewMessageBtn.userInteractionEnabled = YES;
}
}
- (void)clearAllContactsAction
{
//
[self.transparentView removeFromSuperview];
//
self.messagesTableView.hidden = YES;
[self.createNewMessageBtn setTitle:@"New" forState:UIControlStateNormal];
[self.createNewMessageBtn setTitle:@"New" forState:UIControlStateSelected];
// createNewMessageBtn.enabled = YES;
[self.createNewMessageBtn setTitleColor:[SupportFeatures getColorFromHexStr:@"555562"] forState:UIControlStateNormal];
[self.createNewMessageBtn setTitleColor:[SupportFeatures getColorFromHexStr:@"555562"] forState:UIControlStateSelected];
[self.createNewMessageBtn setUserInteractionEnabled: YES];
//
[clearAllOption removeFromSuperview];
[cancelOption removeFromSuperview];
//
noRecentsOption = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 150, 30)];
noRecentsOption.text = @"No Recents";
[self.view addSubview: noRecentsOption];
//
self.editButton.userInteractionEnabled = NO;
self.createNewMessageBtn.userInteractionEnabled = YES;
}
- (void)cancelContactsAction
{
[self setEditing:NO];
[createNewMessageBtn setTitle:@"New" forState:UIControlStateNormal];
[createNewMessageBtn setTitle:@"New" forState:UIControlStateSelected];
createNewMessageBtn.tag = 1;
createNewMessageBtn.enabled = YES;
createNewMessageBtn.userInteractionEnabled = YES;
//
[self.transparentView removeFromSuperview];
[clearAllOption removeFromSuperview];
[cancelOption removeFromSuperview];
//
[self.editButton setTitle:@"Edit" forState:UIControlStateNormal];
[self.editButton setTitle:@"Edit" forState:UIControlStateSelected];
editButton.enabled = YES;
editButton.userInteractionEnabled = YES;
}
This action methods i've tried.Thanks in advance