Iphone: разделить строку через запятую и напечатать каждый в строке выбора - PullRequest
0 голосов
/ 18 февраля 2012

Я получил строку как mild,medium,hot. Я разделил строку с запятой в качестве разделителя. Мне нужно также распечатать ее в pickerView.
Я использовал следующий код и получил количество списков как 3 успешно

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

Но как я могу отобразить все 3 элемента в окне выбора

Ответы [ 2 ]

5 голосов
/ 18 февраля 2012

Вы должны установить свой класс в качестве делегата представления выбора, а затем реализовать эти 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;
}
2 голосов
/ 18 февраля 2012

Сначала вам нужно реализовать UIPickerViewDelegate и UIPickerViewDataSource, поместив их в конец строки @interface заголовочного файла вашего контроллера представления.

Например: @interface MyViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>

Далеевам нужно установить свой контроллер представления в качестве делегата и источника данных вашего представления выбора.Вы можете сделать это в методе - (void)viewDidLoad вашего контроллера представления, добавив строки:

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

, или вы можете связать его в Интерфейсном Разработчике, если вы его используете.

Затем вам нужно реализовать эти методы делегата в вашем исходном файле 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];
}
...