2012-09-25 3 views
2

나는 완전히 Xcode와 코딩과 관련하여 새로운 내용이지만 날개 달기는하고 지금까지는 괜찮은 것처럼 보입니다. 내가하고 싶은 ...조건이있는 UIPickerView

UIPickerView에는 배열로 채워지는 2 개의 구성 요소가 있습니다. 괜찮 으면 좋겠어.하지만 한 걸음 더 나아가고 싶습니다.

왼쪽 구성 요소에는 절대 변경되지 않는 상수 값 목록이 필요합니다. 두 번째 구성 요소에는 첫 번째 구성 요소에서 클릭 한 선택 목록의 하위 목록이 있어야합니다. 예를 들어

: - 나는 이러한 변경이 발생하지만 언어를 모르고을 얻기 위해 if 문을 사용할 수 있습니다 생각

BOY : Matt 
     Tom 
     Pete 

GIRL : Jess 
     Nina 
     Sarah 

은 ... 하나의 사람이 취할 수있는 너무 많은 시행 착오가!

건배

@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"]; 
    } 
+0

다른 사람이 대답 한 경우 다른 사람이 내게 링크를 보낼 수 있습니까? 정말이 문제를 해결하고 싶습니다. –

답변

0

의 I는 일반적으로 올바른 생각 코드,하지만 당신은 가능한 선택을 변경합니다 항목을 따기 후해야 할 데이터가 다른 컬럼의 인덱스 reloadComponent를 호출합니다. 새 항목을 선택한 직후에 수행하십시오 (올바른 구성 요소 선택에서 다시로드를 트리거하십시오).