6

`私は来ているUIPickerViewを作成していますが、デリゲートメソッドが呼び出されていないため、配列からデータを取得していません. UIPickerviewdelegate とデータソースを設定しましたが、まだ機能していません。デリゲート メソッドを呼び出さない理由は何ですか???誰かがそれについて知っている場合は教えてください。よろしくお願いします。

picker.delegate=self;
picker.dataSource=self;



arrayOfState = [[NSMutableArray alloc] init];
[self.arrayOfState addObject:@"Assam"];
[arrayOfState addObject:@"Andhra Pradesh"];
[arrayOfState addObject:@"Madhya Pradesh"];
[arrayOfState addObject:@"West Bengal"];
[self.arrayOfState addObject:@"Orissa"];    
[self.arrayOfState addObject:@"Meghalaya"];
[arrayOfState addObject:@"Tripura"];
[arrayOfState addObject:@"Arunachal Pradesh"];  
[arrayOfState addObject:@"Jammu and Kashmir"];  

picker=[[UIPickerView alloc] initWithFrame:CGRectMake(0.0f,100.0f,40.0f,120.0f)];
picker.showsSelectionIndicator=YES;
4

3 に答える 3

6

これを試して、

- (void)viewDidLoad
{

    [super viewDidLoad];
arrayOfState = [[NSMutableArray alloc] init];
[self.arrayOfState addObject:@"Assam"];
[arrayOfState addObject:@"Andhra Pradesh"];
[arrayOfState addObject:@"Madhya Pradesh"];
[arrayOfState addObject:@"West Bengal"];
[self.arrayOfState addObject:@"Orissa"];    
[self.arrayOfState addObject:@"Meghalaya"];
[arrayOfState addObject:@"Tripura"];
[arrayOfState addObject:@"Arunachal Pradesh"];  
[arrayOfState addObject:@"Jammu and Kashmir"];

picker=[[UIPickerView alloc] initWithFrame:CGRectMake(0.0f,100.0f,40.0f,120.0f)];
picker.delegate=self;
picker.dataSource=self;
picker.showsSelectionIndicator=YES;
[self.view addSubView:picker];
}

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

// Total rows in our component.
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return [arrayOfState count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

        NSString *title;
        title=[arrayOfState objectAtIndex:row];  
        return title; 
    }


- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
}
于 2012-09-06T08:30:06.563 に答える
4

通常、呼び出されないデリゲートメソッドがある場合、これには3つの理由があります。

  1. クラスをデリゲートに設定していません。ピッカーオブジェクトにメモリを割り当てる前にデリゲートを設定したようですが、私には魔法のように聞こえます

  2. デリゲートプロトコルに準拠するクラスにデリゲートメソッドを実装していません。

  3. クラスをデリゲートプロトコルに準拠するように設定していません(つまり、このようなものを作成していません)

@interface yourClass : whateverurclassheritfrom <UIPickerViewDelegate>

于 2012-09-06T08:00:16.457 に答える
1

Add objects to array before calling below code

picker=[[UIPickerView alloc] initWithFrame:CGRectMake(0.0f,100.0f,40.0f,120.0f)];
picker.delegate=self;
picker.dataSource=self;
picker.showsSelectionIndicator=YES;
[self.view addSubView:picker];

問題は、あなたがdelegatedatasource前に を設定することでしたallocating picker

于 2012-09-06T08:03:09.563 に答える