Задача c Как удалить элемент во втором и третьем текстовом поле на основе выбора первого элемента текстового поля - PullRequest
1 голос
/ 27 апреля 2020

У меня есть один UIPickerview. У меня есть json ответ. У меня есть три текстовых поля. Если пользователь выбирает первое представление выбора текстового поля, то пользователь выбирает конкретный элемент. И второе и третье текстовые поля тоже одинаковые. Мое требование: если пользователь выбирает конкретный элемент в первом окне выбора, во втором и третьем окне выбора элемент не отображается. И второе и третье тоже одно и то же.

-(void)viewDidLoad
{

dataArray = [[NSMutableArray alloc]initWithObjects:@"A+",@"A-",@"B+",@"B-",@"O+",@"O-", nil];

bloodGroup = [[UITextField alloc]initWithFrame:CGRectMake(10, logoImg.frame.origin.y+logoImg.frame.size.height+45, screenWidth-20, 50)];

bloodGroup.borderStyle = UITextBorderStyleRoundedRect;

bloodGroup.font = [UIFont systemFontOfSize:15];

bloodGroup.placeholder = @"Please Select Your Option";

bloodGroup.delegate = self;

[self.view addSubview:bloodGroup];

txtField1 = [[UITextField alloc]initWithFrame:CGRectMake(10, ansField1.frame.origin.y+ansField1.frame.size.height+45, screenWidth-20, 50)];

txtField1.borderStyle = UITextBorderStyleRoundedRect;

txtField1.font = [UIFont systemFontOfSize:15];

txtField1.placeholder = @"Please Select Your Option";

txtField1.delegate = self;

[self.view addSubview:txtField1];

txtField2 = [[UITextField alloc]initWithFrame:CGRectMake(10, ansField2.frame.origin.y+ansField2.frame.size.height+45, screenWidth-20, 50)];

txtField2.borderStyle = UITextBorderStyleRoundedRect;

txtField2.font = [UIFont systemFontOfSize:15];

txtField2.placeholder = @"Please Select Your Option";

txtField2.delegate = self;

[self.view addSubview:txtField2];

myPickerView = [[UIPickerView alloc] init];

[myPickerView setDataSource: self];

[myPickerView setDelegate: self];

myPickerView.showsSelectionIndicator = YES;

bloodGroup.inputView = myPickerView;

bloodGroup.inputAccessoryView = toolBar;

// txtField1

txtField1.inputView = myPickerView;

txtField1.inputAccessoryView = toolBar;

txtField2.inputView = myPickerView;

txtField2.inputAccessoryView = toolBar;

}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

if (isBloodGroupFieldSelected) {

return 1;

}

else if(!isBloodGroupFieldSelected){

return 1;

}

else if(!isGenderGroupFieldSelected)

{

return 1;

}

return 0;

}

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{

if (isBloodGroupFieldSelected) {

return [dataArray count];

}

else if(!isBloodGroupFieldSelected)

{

return [dataArray count];

}

else if (!isGenderGroupFieldSelected)

{

return [dataArray count];

}

return 0;

}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

if (isBloodGroupFieldSelected)

{

return dataArray[row];

}

else if((!isBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

return dataArray[row];

}

else if(!isGenderGroupFieldSelected)

{

return dataArray[row];

}

return 0;

}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

if (isBloodGroupFieldSelected) {

bloodGroup.text = dataArray[row];

}

else if((!isBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

txtField1.text = dataArray[row];

}

else if(!isGenderGroupFieldSelected)

{

txtField2.text= dataArray[row];

}

}

- (void)textFieldDidBeginEditing:(UITextField *)textField {

if (textField == bloodGroup) {

isBloodGroupFieldSelected = YES;

}

else if (textField == txtField1){

isBloodGroupFieldSelected = NO;

isGenderGroupFieldSelected = YES;

}

else if (textField == txtField2) {

isGenderGroupFieldSelected = NO;

isBloodGroupFieldSelected = NO;

}

[myPickerView reloadAllComponents];

}

1 Ответ

0 голосов
/ 27 апреля 2020

- (void) viewDidLoad {

dataArray = [[NSMutableArray alloc] initWithObjects: @ "A +", @ "A -", @ "B +", @ "B -", @ "O +" , @ "O-", nil];

bloodGroup = [[UITextField alloc] initWithFrame: CGRectMake (10, logoImg.frame.origin.y + logoImg.frame.size.height + 45, screenWidth-20 , 50)];

bloodGroup.borderStyle = UITextBorderStyleRoundedRect;

bloodGroup.font = [UIFont systemFontOfSize: 15];

bloodGroup.placeholder = @ "Пожалуйста, выберите ваш вариант ";

bloodGroup.delegate = self;

[self.view addSubview: bloodGroup];

txtField1 = [[UITextField alloc] initWithFrame: CGRectMake (10, ansField1. frame.origin.y + ansField1.frame.size.height + 45, screenWidth-20, 50)];

txtField1.borderStyle = UITextBorderStyleRoundedRect;

txtField1.font = [UIFont systemFontOfSize: 15];

txtField1.placeholder = @ "Пожалуйста, выберите ваш вариант";

txtField1.delegate = self;

[self.view addSubview: txtField1];

* 10 28 * txtField2 = [[UITextField alloc] initWithFrame: CGRectMake (10, ansField2.frame.origin.y + ansField2.frame.size.height + 45, screenWidth-20, 50)];

txtField2.borderStyle = UITextBorderStyleRoundedRect;

txtField2.font = [UIFont systemFontOfSize: 15];

txtField2.placeholder = @ "Пожалуйста, выберите ваш вариант";

txtField2.delegate = self;

[self.view addSubview: txtField2];

myPickerView = [[UIPickerView alloc] init];

[myPickerView setDataSource: self];

[myPickerView setDelegate: self];

myPickerView.showsSelectionIndicator = YES;

bloodGroup.inputView = myPickerView;

bloodGroup.inputAccessoryView = toolBar;

* 1052 / txtField1

txtField1.inputView = myPickerView;

txtField1.inputAccessoryView = toolBar;

txtField2.inputView = myPickerView;

txtField2.inputAccessory = =

}

- (NSInteger) numberOfCo mponentsInPickerView: (UIPickerView *) pickerView {

if (isBloodGroupFieldSelected) {

return 1;

}

else if (! isBloodGroupFieldSelected) {

return 1;

}

else if (! IsGenderGroupFieldSelected)

{

return 1;

}

return 0;

}

- (NSInteger) pickerView: (UIPickerView *) pickerView numberOfRowsInComponent: (NSInteger) компонент {

if (isBloodGroupFieldSelected) {

return [dataArray count];

}

else if (! IsBloodGroupFieldSelected)

{

return [dataArray count];

}

иначе, если (! IsGenderGroupFieldSelected)

{

return [dataArray count];

}

return 0;

}

- (NSString *) pickerView: (UIPickerView *) pickerView titleForRow: (NSInteger) строка forComponent: (NSInteger) компонент {

if ( isBloodGroupFieldSelected)

* 1 122 * {

вернуть dataArray [row];

}

else if ((! IsBloodGroupFieldSelected) && (isGenderGroupFieldSelected))

{

вернуть dataArray [row];

}

else if (! IsGenderGroupFieldSelected)

{

вернуть dataArray [row];

}

return 0;

}

- (void) pickerView: (UIPickerView *) pickerView didSelectRow: (NSInteger) строка inComponent: (NSInteger) component {

if (isBloodGroupFieldSelected) {

bloodGroup.text = dataArray [row];

}

else if ((! IsBloodGroupFieldSelected) && (isGenderGroupFieldSelected) )

{

txtField1.text = dataArray [row];

}

else if (! IsGenderGroupFieldSelected)

{

txtField2.text = dataArray [row];

}

}

  • (void) textFieldDidBeginEditing: (UITextField *) textField {

if (textField == bloodGroup) {

isBloodGroupFieldSelected = YES;

}

else if (textField == txtField1) {

isBloodGroupFieldSelected = NO;

isGenderGroupFieldSelected = YES;

}

еще if (textField == txtField2) {

isGenderGroupFieldSelected = NO;

isBloodGroupFieldSelected = NO;

}

[myPickerView reloadAllComponents];

}

  • (void) textFieldDidBeginEditing: (UITextField *) textField {

if (textField == bloodGroup) {

isBloodGroupFieldSelected = YES;

} else if (textField == txtField1) {

isBloodGroupFieldSelected = NO;

isGenderGroupFieldSelected = YES;

}

еще if (textField == txtField2) {

isGenderGroupFieldSelected = NO;

isBloodGroupFieldSelected = NO;

}

[myPickerView reloadAllComponents];

}

  • (void) viewWillAppear: (BOOL) анимированный {

[ super viewWillAppear: animated];

[myPickerView selectRow: 0 inComponent: 0 animated: YES];

}

- (void) сделано: (id) отправитель

{

[myPickerView selectRow: 0 inComponent: 0 animated: YES]; // 27/04/2020

[bloodGroup resignFirstResponder];

[txtField1 resignFirstResponder];

[txtField2 resignFirstResponder];

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...