안녕하세요 각각 하나의 UIButton에 두 개의 다른 동작을 추가하려고합니다. 내보기에는 "편집"과 "새로운"과 같은 두 가지 UIButton이 있으며 서로 다른 작업과 테이블보기가 있습니다. 편집 버튼을 클릭하면 테이블보기의 편집 옵션이 표시되고 "새로 만들기"버튼 제목 라벨이 "지우기"로 변경되고 "편집"이 "완료"로 변경됩니다. "지우기"텍스트를 클릭하면 경고가 표시됩니다 취소 버튼은 정상적인 이전 상태로 이동합니다. 이 모든 것이 정상적으로 작동합니다. "새로 만들기"를 클릭하면 다음보기로 이동해야하지만, 편집 옵션을 표시하고 다음보기로 이동하는 것입니다.하나의 UIButton에 대해 두 개의 UIButton 동작을 추가하는 방법
// 편집 테이블 방법
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[messagesTableView setEditing:editing animated:YES];
}
// 버튼 액션과 방법
- (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;
}
이 작업 방법 난했습니다 tried.Thanks 태그 값에 기초 사전
Relevant UIButtons
([editButton와Method
다음 연결Code
다음
viewDidLoad
넣어에서Code
을 다음과 같이 이제 한 시도하십시오 .titleLabel.text isEqualToString : @ "편집"]) 경고를 표시하고 다음 화면으로 이동합니다. – svs