2012-02-18 28 views
0

我得到了一個字符串mild,medium,hot。我用逗號分隔字符串作爲分隔符。我也需要在pickerView中打印它。
我使用了下面的代碼,併成功將列表計數爲3。Iphone:分割一個逗號分隔的字符串,並在pickerview的每一行打印

NSString *spList=[mdict objectForKey:@"spicinesstype"]; 
    NSArray *list = [spList componentsSeparatedByString:@","]; 
    NSLog(@"List count:%d",[list count]); 
    return [list count]; 

但我怎麼能顯示pickerview所有3項

回答

5

你應該設置你的類作爲選擇器視圖的委託,然後實現你的選擇器這3種委託方法

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component { 
    return [array count]; 
} 

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    return [array objectAtIndex:row]; 
} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { 
    return 1; 
} 
+0

感謝您的快速回復 – nithin 2012-02-18 11:04:42

2

首先,您需要將UIPickerViewDelegate和UIPickerViewDataSource放置在視圖控制器頭文件的@interface行末尾。

像這樣:@interface MyViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>

接下來,你需要你選擇器視圖設置您的視圖控制器爲委託和數據源。您可以通過增加線路做在您的視圖控制器的- (void)viewDidLoad方法:

myPickerView.delegate = self; 
myPickerView.dataSource = self; 

或者,你可以,如果你使用的是在Interface Builder鏈接起來。

然後,您需要在View Controller源文件中實現這些委託方法。

(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
{ 
    return 1; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    // whatever you want to happen when a row is selected. 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 
{ 
    return [list count]; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 
{ 
    return [list objectAtIndex:row]; 
} 
相關問題