2011-09-26 4 views
0

안녕하세요. iphone 앱을 만드는 중 맨 위에 선택된 버튼에 따라 tableviews를 전환해야합니다. plist 파일에 배열로 채워진 다섯 개의 다른 tableviews가 있습니다. 내 질문에 어떻게 다른 배열로 전환하려면이 uitableview 말할 수 있습니다. 감사!uitableview가 채워진 배열을 전환하는 방법

답변

0

배열의 사전이나 배열 (데이터)과 "현재"배열의 속성/iVar를 가질 수 있습니다. 다른 옵션을 선택하면 현재 배열의 값을 변경하고 [tableView reloadData]를 호출합니다. 그러면 테이블 뷰 콜백이 모든 데이터를 트리거하고 다시로드하게됩니다. 모든 테이블 뷰 콜백은 현재 배열에서 데이터를 가져와야합니다.

예를 들어 '자동차', '컴퓨터'및 '기기'의 세 가지 데이터 세트가 있다고 가정 해 보겠습니다.

// defined as property in header to handle retain/release 
    @property (retain) NSArray *current; 

    // construct your data on load or init 
    NSArray *cars = [NSArray arrayWithObjects:@"porsche", @"corvette", @"pacer", nil]; 
    NSArray *computers = [NSArray arrayWithObjects:@"PC", @"iMac", nil]; 
    NSArray *devices = [NSArray arrayWithObjects:@"iPhone", @"iPad", @"iPod", nil]; 

    NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; 
    [data setObject:cars forKey:@"cars"]; 
    [data setObject:computers forKey:@"computers"]; 
    [data setObject:devices forKey:@"devices"]; 

    // when they select computers, change the current array to computers array 
    [self setCurrent: [data objectForKey:@"computers"]]; 

    // since you changed which dataset to use, trigger for the table view to reload. 
    [tableView reloadData]; 

    // all table view callbacks work off of current array 
0

tableview 데이터 소스는 섹션의 숫자와 섹션 및 행에 대한 값과 각 행에 대한 UITableViewCell을 반환합니다. 적절한 배열의 데이터를 사용하여 올바른 값을 반환해야합니다.

예를 들어, 5 개 어레이 (배열 1, 배열 2 등), 그래서 또한 당신이 데이터를 반환하려는 배열 할당하는 다른 배열 속성을 선언 할 수있는 경우 : 말

self.dataArray = self.array1을, 첫 번째 버튼을 누를 때

다음에 self.dataArray을 사용하여 데이터 소스 메소드의 값을 반환하십시오.

0

버튼 동작이 이렇게 수행됩니다.

-(void)ButtonPressed:(id)sender { 

    switch([sender tag]) { 

    case 0: { 
    self.resultArray = [NSArray arrayWithObjects:@"ABC",@"MNO",nil]; 
//self.resultArray = //sameArrayAssigned to it 
    break; 
    } 

    default: 
    break; 
    } 
    [self.tableView reloadData]; 

    } 
관련 문제