2016-05-09 6 views
1

Ich bin neu zu IOS Ich möchte basierend auf Picker Ansicht Auswahl im Textfeld zeigen ihre Parameter können als eine Post-Methode, um Antwort zu erhalten und in der Alarmansicht angezeigt werden.Picker Ansicht Auswahl ihre Parameter können weitergegeben Post-Methode

Picker Ansicht Delegierten:

- (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:

Array erstellt:

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

zeigen Sie Ihre arrMsg einmal –

Antwort

0

Ein NSNotificationCenter Objekt (oder einfach, Mitteilungszentrale) innerhalb eines Mechanismus für die Rundfunkinformationen liefert ein Programm.

Sie können mehr über NSNotificationCenter here lesen.

Eine der Möglichkeiten besteht darin, ein Objekt über das Notification Center zu senden. Wenn Sie ein Objekt senden möchten, müssen Sie postNotification wie nennen:

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

Sie haben dieses Stück Code innerhalb des Verfahrens zu stellen, dass Ihr Array kehrt/geben.

Sobald Sie postNotification anrufen, müssen Sie eine observer innerhalb der Klasse, die das Objekt, das Sie gesendet haben, mit postNotification erhalten.

Und Sie observer in viewDidLoad wie folgt einstellen:

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

Wenn die observer innerhalb dieser Klasse Ihre Mitteilung erhalten, wird es die method in @selector nennen. Diese Methode (in dem Code über doSomething:) muss in der Klasse definiert werden, die Sie observer setzen.

-(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 

} 

Ich hoffe, das kann Ihnen helfen.

+0

können Sie bitte erklären Sie Ihre obigen Code @ j.Lopes –

+0

Natürlich! Schau, ob es klarer ist. Alles andere lass es mich wissen. –