2

Я написал код, чтобы поместить элемент с правой кнопкой мыши с пользовательским видом. Если вы хотите отредактировать его, то он изменится для сохранения параметра. Теперь я выбираю save, сохраняет значения. Если я снова попробую для выбора редактировать действие не firing.The код, который я написал ниже,Objective C UIBarButtonItem как кнопка переключения для редактирования и сохранения

item = [[UINavigationItem alloc]init];  
btnn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[btnn setFrame:CGRectMake(0, 0, 40, 40)]; 
btnn.layer.masksToBounds = NO; 
btnn.layer.cornerRadius = 8.0; 
[btnn addTarget:self action:@selector(rightBarButtonCustomPressed:) forControlEvents:UIControlEventTouchUpInside]; 
[btnn setImage:[UIImage imageNamed:@"edit"] forState:UIControlStateNormal]; 
UIBarButtonItem* rightBtn = [[UIBarButtonItem alloc] initWithCustomView:btnn]; 
item.rightBarButtonItem = rightBtn; 
self.navigationBar.items = @[item]; 

- (IBAction) rightBarButtonCustomPressed: (UIBarButtonItem *) БТН {

item = [[UINavigationItem alloc]init]; 
btnn = [UIButton buttonWithType:UIButtonTypeSystem]; 
[btnn setFrame:CGRectMake(0, 0, 40, 40)]; 
btnn.layer.masksToBounds = NO; 
btnn.layer.cornerRadius = 8.0; 
[btnn addTarget:self action:@selector(saveBtnClicked:) forControlEvents:UIControlEventTouchUpInside]; 
[btnn setTitle:@"save" forState:UIControlStateNormal]; 
UIBarButtonItem* rightBtn = [[UIBarButtonItem alloc] initWithCustomView:btnn]; 
item.rightBarButtonItem = rightBtn;  
self.navigationBar.items = @[item]; 

[self.firstNameText setEnabled:YES]; 
[self.lastNameText setEnabled:YES]; 
[self.dateOfBirthTxt setEnabled:YES]; 
[self.contactNumberlbl setEnabled:YES]; 

}

- (IBAction) saveBtnClicked: (UIBarButtonItem *) BTN {

[self.firstNameText setEnabled:NO]; 
[self.lastNameText setEnabled:NO]; 
[self.dateOfBirthTxt setEnabled:NO]; 
[self.contactNumberlbl setEnabled:NO]; 
item = [[UINavigationItem alloc]init]; 
btnn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[btnn setFrame:CGRectMake(0, 0, 40, 40)]; 
btnn.layer.masksToBounds = NO; 
btnn.layer.cornerRadius = 8.0; 
[btnn addTarget:self action:@selector(rightBarButtonCustomPressed:) forControlEvents:UIControlEventTouchUpInside]; 
[btnn setImage:[UIImage imageNamed:@"edit"] forState:UIControlStateNormal]; 
UIBarButtonItem* rightBtn = [[UIBarButtonItem alloc] initWithCustomView:btnn]; 
item.rightBarButtonItem = rightBtn; 
self.navigationBar.items = @[item]; 

мне нужно достигнуть barbuttonitem как переключатель, чтобы сохранить и редактировать option.Please кто-нибудь помочь мне исправить this.Thanks

ответ

0

В месте alloc init evry time, почему бы вам не попробовать изменить buttonTitle, а затем вы можете выполнить действие на его основе