如何在运行时加载数组中的项目

时间:2012-08-06 09:34:49

标签: iphone xcode uitableview

我有三个tableView一个包含cateogry的一个包含类型和其他产品名称我希望当用户selct任何类别时,类型数组应该在运行时加载获得相同类型的所选类别

在我的例子中,如果我选择类别除草剂,那么它应该插入

的内容

在arrayType中输入typeHerbicides,但是当我加载第二个表时,它不会显示任何值

 - (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];
    }

2 个答案:

答案 0 :(得分: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];
    }
}

答案 1 :(得分:0)

只需尝试仅在函数的最后返回单元格并查看。