0

Xcode 4 で作業していますが、ピッカー ビューに問題があります。UIPickerView の選択されたオブジェクトが「European Sights」に等しい場合、他のビューに移動したくありません

これは私が実行したいアクションです:

-(IBAction)switchviewMainToQuiz:(id)sender {


    if([arrayPickerView objectAtIndex:1] == @"European Sights"){

        ViewControllerQuiz *quizView = [[ViewControllerQuiz alloc] initWithNibName:nil bundle:nil];

        [self presentModalViewController:quizView animated:YES];

    }
    else{
        lblPickerView.text = @"werkt niet";
    }
}

これはコードの残りの部分です (pickerview コード):

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    //Put strings in the PickerView and show in label what's selected
    arrayPickerView = [[NSMutableArray alloc] init];
    [arrayPickerView addObject:@"European Sights"];
    [arrayPickerView addObject:@"Flags of the world"];
    [arrayPickerView addObject:@"Something2"];
    [arrayPickerView addObject:@"Something3"];
    [arrayPickerView addObject:@"Something4"];

    [pickerView selectRow:1 inComponent:0 animated:NO];
    lblPickerView.text= [arrayPickerView objectAtIndex:[pickerView selectedRowInComponent:0]];


}

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

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    lblPickerView.text=    [arrayPickerView objectAtIndex:row];
}

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

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


}

UIPickerView が機能し、選択した項目がラベルに表示されます。誰かが私を助けることができますか?ありがとうございました

4

3 に答える 3

1
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    lblPickerView.text=    [arrayPickerView objectAtIndex:row];

    UIButton *sender = [UIButton buttonWithType:UIButtonTypeCustom]; 
    sender.tag = row;
    [self  switchviewMainToQuiz:(id)sender];  // send a dummy button as the action is conformed for an UIButton interception
}
于 2012-10-17T10:47:27.130 に答える
1
objectAtIndex:0     

obj c はゼロから始まる配列を使用します

于 2012-10-17T10:36:25.840 に答える
0

次のコード行を試してください:

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
    {
        lblPickerView.text= [arrayPickerView objectAtIndex:行];
        if(lblPickerView.text isEqualToString:@"ヨーロッパの名所"){
            ViewControllerQuiz *quizView = [[ViewControllerQuiz alloc] initWithNibName:nil bundle:nil];
            [self presentModalViewController:quizView animation:YES];
        }
        そうしないと{
            lblPickerView.text = @"werkt niet";
        }
    }

于 2012-10-17T10:54:22.377 に答える