-1

私は3つのtableViewを持っています。1つはカテゴリを含み、1つはタイプを含み、他の製品名は、ユーザーが任意のカテゴリを選択したときに、実行時にタイプ配列をロードして、選択したカテゴリと同じタイプを取得する必要があります

私の例では、除草剤のカテゴリを選択すると、

arrayType の typeHerbicides ですが、テーブルを 2 番目にロードすると値が表示されません

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  return 1;
  }

// テーブル ビューの行数をカスタマイズします。

  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {


   if (tableView ==tblSimpleTable ) 


    return [categoryArray count];

   else if(tableView==tblSimpleTableType)

     return [typeArray count];

   else if(tableView==tblSimpleTableProduct)

    return [productArray count];

   else if(tableView==tblSimpleTableOneSection)

    return [categorySectionOneArray count];
   else if(tableView==tblSimpleTableTypeSection)

    return [typeArraySection count];
    else 

    return  [productArraySection count];
     }

// テーブル ビュー セルの外観をカスタマイズします。

   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


     if (cell == nil) {
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
     }


    if (tableView ==tblSimpleTable ) {


cell.textLabel.font=[UIFont fontWithName:@"Arial" size:16];

cell.textLabel.text = [categoryArray objectAtIndex:indexPath.row];
    return cell;


   }


    else if (tableView==tblSimpleTableType){

    cell.textLabel.font=[UIFont fontWithName:@"Arial" size:16];

    cell.textLabel.text = [typeArray objectAtIndex:indexPath.row];
    return cell;

   }



   else if(tableView==tblSimpleTableProduct) {

    cell.textLabel.font=[UIFont fontWithName:@"Arial" size:16];

    cell.textLabel.text = [productArray objectAtIndex:indexPath.row];
    return cell;



   }

   else if(tableView==tblSimpleTableOneSection){

    cell.textLabel.font=[UIFont fontWithName:@"Arial" size:16];

    cell.textLabel.text = [categorySectionOneArray objectAtIndex:indexPath.row];
    return cell;


    }

    else if(tableView==tblSimpleTableTypeSection){
    cell.textLabel.font=[UIFont fontWithName:@"Arial" size:16];

    cell.textLabel.text = [typeArraySection objectAtIndex:indexPath.row];
    return cell;

   }

   else {

    cell.textLabel.font=[UIFont fontWithName:@"Arial" size:16];

    cell.textLabel.text = [productArraySection objectAtIndex:indexPath.row];
    return cell;


   }
   }

     - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

     if (tableView ==tblSimpleTable ) {


    titleCategory=[categoryArray objectAtIndex:indexPath.row];

    NSLog(@"This is titleCategory Selected %@",titleCategory);



    NSString*test=@"Herbicides";




    if([titleCategory isEqualToString:test]){

     typeHerbicides=[[NSArray alloc] initWithObjects:@"ACCLAIM EXTRA",@"ILLOXAN",@"REVOLVER",nil];

    typeArray=[[NSArray alloc] initWithArray:typeHerbicides copyItems:YES];
    }

    else {
        typeArray=[[NSArray alloc] initWithObjects:@"ILLOXAN",@"REVOLVER",nil];

        typeArray=[[NSArray alloc] initWithArray:typeHerbicides copyItems:YES];

    }

    }

    else if(tableView==tblSimpleTableType) 

    titleType=[typeArray objectAtIndex:indexPath.row];

   else if(tableView==tblSimpleTableProduct)


    titleProduct=[productArray objectAtIndex:indexPath.row];

   else if(tableView==tblSimpleTableOneSection)


    titleSectionOneCategory=[categorySectionOneArray objectAtIndex:indexPath.row];


    else if(tableView==tblSimpleTableTypeSection)


    titleTypeSection=[typeArraySection objectAtIndex:indexPath.row];
    else 


    titleProductSection=[productArraySection objectAtIndex:indexPath.row];
    }
4

2 に答える 2

0

関数の最後にセルを返すだけで試してみてください。

于 2012-08-06T12:30:32.040 に答える
0

ユーザーが任意のカテゴリを選択すると、 didSelectRowAtIndexPath で、選択したカテゴリに基づいて typeArray を初期化できます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(tableView == tblSimpleTableType)
    {
       //initialize typeArray;

       //Once typeArray is initialized just reload the tableview as follows:
       [tblSimpleTableType reloadData];
    }
}
于 2012-08-06T09:46:28.667 に答える