2016-05-09 3 views
1

Я новичок в IOS, я хочу показать, что на основе выбора выбора в текстовом поле их параметр может передаваться как метод Post для получения ответа и просмотра в режиме предупреждения.Выбор режима выбора их параметров может передаваться по методу post

Picker вид делегатов:

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

{ 
    if(pickerView.tag == 2){ 
     return arrMsg.count; 
    }else if(pickerView.tag == 1){ 
    return currencyname1.count; 
    } 
    else 
    { 
     return from_currency.count; 
    } 
} 


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

{ 


    if(pickerView.tag == 2){ 
     return [arrMsg objectAtIndex:row]; 
    }else if(pickerView.tag == 1){ 
     return [currencyname1 objectAtIndex:row]; 
    } 
    else 
    { 
     return [from_currency objectAtIndex:row]; 
    } 
} 


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

{ 
    if(pickerView.tag ==2){ 
    txtText.text = (NSString *)[arrMsg objectAtIndex:row]; 
     NSLog([arrmsg1 objectAtIndex:row]); 
    }else if(pickerView.tag ==1){ 
    currency1.text = (NSString *)[currencyname1 objectAtIndex:row]; 
     NSLog([id1 objectAtIndex:row]); 

    } 
    else 
    { 
     currency2.text = (NSString *)[from_currency objectAtIndex:row]; 
     NSLog([id2 objectAtIndex:row]); 
    } 




} 

viedidload:

массив создан:

arrMsg = [json valueForKeyPath:@"Branches.branch_name"]; 
     //NSLog(@"%@",json); 
     arrmsg1 =[json valueForKeyPath:@"Branches.id"]; 
     firststr = [arrmsg1 componentsJoinedByString:@","]; 
     currencyname1 = [json1 valueForKeyPath:@"Currencies.currency_name"]; 
     id1 = [json1 valueForKeyPath:@"Currencies.id"]; 

     from_currency = [json1 valueForKeyPath:@"Currencies.currency_name"]; 
     id2 = [json1 valueForKeyPath:@"Currencies.id"]; 
     secondstr = [id1 componentsJoinedByString:@","]; 
     thirdstr = [id2 componentsJoinedByString:@","]; 
     NSLog(@"%@",secondstr); 
     NSLog(@"%@",thirdstr); 

    str = [NSString stringWithFormat:@"branch_id=%@&from_curr=%@&to_curr=%@&value=%@",firststr,secondstr,thirdstr,fourthstr]; 



pktStatePicker = [[UIPickerView alloc] initWithFrame:CGRectZero]; 

pktStatePicker .delegate = self; 

pktStatePicker .dataSource = self; 
txtText.delegate = self ; 
currency1.delegate = self; 
currency2.delegate = self; 
[ pktStatePicker setShowsSelectionIndicator:YES]; 
+0

показать ваш arrMsg один раз –

ответ

0

NSNotificationCenter объект (или просто, центр уведомлений) предоставляет механизм для трансляции информации в программа.

Вы можете узнать больше о NSNotificationCenter here.

Одна из возможностей - отправить объект через Центр уведомлений. Если вы хотите отправить объект, который вы должны вызвать postNotification как:

[[NSNotificationCenter defaultCenter] postNotificationName:@"notification_name" object:self userInfo:@{@"result":arrMsg}]; 

Вы должны поместить этот кусок кода внутри метода, который вернет/передать свой массив.

После того как вы позвоните postNotification, вы должны установить observer внутри класса, который получит объект, который вы отправили, используя postNotification.

И вы можете установить observer в viewDidLoad следующим образом:

// NSNotification 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(doSomething:) 
              name:@"notification_name" 
              object:nil]; 

Когда observer внутри этого класса получить уведомление, он будет вызывать method в @selector. Этот метод (в коде выше doSomething:) должен быть определен в классе, который вы установили observer.

-(void)doSomething:(NSNotification *) notification { 

    // You can get the object you have sent - using the `notification` object 
    NSMutableArray dataArray = [NSMutableArray arrayWithArray:notification.userInfo[@"result"]]; 
    // Do something else 

} 

Надеюсь, это может вам помочь.

+0

может у вас объяснить ваш выше код @ j.Lopes –

+0

Конечно! Смотрите, если это более ясно. Что-нибудь еще просто дайте мне знать. –

Смежные вопросы