2

私は Xcode にまったく慣れておらず、コーディングに本当に関係することは何もありませんが、私はそれを翼にしており、今まではうまくいっているようです。私がしたいこと...

UIPickerView配列によって設定された 2 つのコンポーネントを持つ があります。それは問題なく、素敵に機能しますが、これをさらに一歩進めたいと思います.

左側のコンポーネントでは、変更されない定数値を持つリストが必要です。2 番目のコンポーネントでは、最初のコンポーネントでクリックされた選択のサブリストが必要です。

例えば:-

BOY : Matt
      Tom
      Pete

GIRL : Jess
       Nina
       Sarah

私はifステートメントを使用してこれらの変更を行うことができると考えましたが、言語を知りません...一人の男が取ることができる試行錯誤はそれほど多くありません!

乾杯

@interface TripsViewController ()
@end

@implementation TripsViewController

@synthesize ActivitysLabel;
@synthesize TripsLabel;

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    if (component == ACTIVITY)
        return [ArrayActivity count];

    if (component == TRIPS)
        return [ArrayTrips count];

    return 0;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

    if (component == ACTIVITY)
        return [ArrayActivity objectAtIndex:row];

    if (component == TRIPS)
        return [ArrayTrips objectAtIndex:row];
    return 0;
}

- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    ActivitysLabel.text = [ArrayActivity objectAtIndex:[pickerView selectedRowInComponent:0]];
    TripsLabel.text = [ArrayTrips objectAtIndex:[pickerView selectedRowInComponent:1]];
}

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad

{
    [super viewDidLoad];
    ArrayActivity = [[NSMutableArray alloc] init];
    [ArrayActivity addObject:@"Abseiling"];
    [ArrayActivity addObject:@"Canyoning"];
    [ArrayActivity addObject:@"Rock Climbing"];
    [ArrayActivity addObject:@"Bush Walking"];
    [ArrayActivity addObject:@"Mountain Biking"];
    [ArrayActivity addObject:@"4wd Tours"];


    // My attempts at trying to solve this problem


    if (ArrayActivity containsObject:NSString @"Canyoning") {
        ArrayTrips = [[NSMutableArray alloc] init];
        [ArrayTrips addObject:@"Empress Canyon"];
        [ArrayTrips addObject:@"Sheep Dip"];
        [ArrayTrips addObject:@"butterbox"];
    } 
4

1 に答える 1

0

コードは概ね正しいと思いますが、可能な選択を変更するアイテムを選択した後に行う必要があるreloadComponentのは、データが異なる列のインデックスを使用して呼び出すことです。新しいエントリが選択された直後にそれを行います (正しいコンポーネント選択でのみリロードをトリガーするようにしてください)。

于 2013-03-11T04:08:03.770 に答える