两个TableView都显示相同的数据?

时间:2014-03-21 06:59:53

标签: ios objective-c uitableview uikit

我在同一个UITableView中使用了两个View。我使用了原型单元格,其中有两个label来显示TableView中的日期和地点。 这是我做的代码。两个TableViews都显示相同的数据。

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


UITableView *tableViewOne=(UITableView*)[self.view viewWithTag:5];
UITableView *tableViewtwo=(UITableView*)[self.view viewWithTag:6];



UITableViewCell *cell;


if (tableViewOne) {
    NSLog(@"In Table1");
   static NSString *CellIdentifier = @"cell";
   cell=[tableViewOne dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    UILabel * dateLabel = (UILabel*)[cell viewWithTag:111];
    dateLabel.text = [dateArrayLableInTableviewOne objectAtIndex:indexPath.row];

    UILabel *venueLabel=(UILabel*)[cell viewWithTag:114];
    venueLabel.text=[venueArrayLabelInTableViewOne objectAtIndex:indexPath.row];


}

  else if(tableViewtwo){
    NSLog(@"In Tabl2 ");
    static NSString *CellIdentifier2 = @"cellTwo";

    cell = [tableViewtwo dequeueReusableCellWithIdentifier:CellIdentifier2];
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2];

        }


      UILabel * dateLabelOfTableViewTwo = (UILabel*)[cell viewWithTag:211];
      dateLabelOfTableViewTwo.text = [dateArrayLabelInTableViewTwo objectAtIndex:indexPath.row];

      UILabel *venueLabelOfTableViewTwo=(UILabel*)[cell viewWithTag:214];
      venueLabelOfTableViewTwo.text=[venueArrayLabelInTableViewTwo objectAtIndex:indexPath.row];

}


 return cell;

}

4 个答案:

答案 0 :(得分:2)

喜欢

if (tableView == tableViewOne){

      // Your Code
}

elseif (tableView == tableViewTwo){

      // Your Code
}

答案 1 :(得分:2)

你的comaprison是不正确的,因为两个表视图都存在,第一个条件得到满足,因此两个表中的数据相同。

使用UITableView对象标识符进行比较

if (tableView==first_table_view_name) {
}
else
{
}

答案 2 :(得分:2)

if 条件不正确。所以请像这样检查

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

UITableViewCell *cell;


if (tableView.tag == 5) // Change here 
{
    NSLog(@"In Table1");
   static NSString *CellIdentifier = @"cell";
   cell=[tableViewOne dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    UILabel * dateLabel = (UILabel*)[cell viewWithTag:111];
    dateLabel.text = [dateArrayLableInTableviewOne objectAtIndex:indexPath.row];

    UILabel *venueLabel=(UILabel*)[cell viewWithTag:114];
    venueLabel.text=[venueArrayLabelInTableViewOne objectAtIndex:indexPath.row];


}

  else
{
    NSLog(@"In Tabl2 ");
    static NSString *CellIdentifier2 = @"cellTwo";

    cell = [tableViewtwo dequeueReusableCellWithIdentifier:CellIdentifier2];
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2];

        }


      UILabel * dateLabelOfTableViewTwo = (UILabel*)[cell viewWithTag:211];
      dateLabelOfTableViewTwo.text = [dateArrayLabelInTableViewTwo objectAtIndex:indexPath.row];

      UILabel *venueLabelOfTableViewTwo=(UILabel*)[cell viewWithTag:214];
      venueLabelOfTableViewTwo.text=[venueArrayLabelInTableViewTwo objectAtIndex:indexPath.row];

}


 return cell;
}

答案 3 :(得分:0)

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


    //UITableView *tableViewOne=(UITableView*)[self.view viewWithTag:5];
    //UITableView *tableViewtwo=(UITableView*)[self.view viewWithTag:6];



    UITableViewCell *cell;


    if (tableView.tag==5) // problem is here
{
        NSLog(@"In Table1");
       static NSString *CellIdentifier = @"cell";
       cell=[tableViewOne dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell==nil) {
            cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }
        UILabel * dateLabel = (UILabel*)[cell viewWithTag:111];
        dateLabel.text = [dateArrayLableInTableviewOne objectAtIndex:indexPath.row];

        UILabel *venueLabel=(UILabel*)[cell viewWithTag:114];
        venueLabel.text=[venueArrayLabelInTableViewOne objectAtIndex:indexPath.row];


    }

      else if(tableView.tag==6){
        NSLog(@"In Tabl2 ");
        static NSString *CellIdentifier2 = @"cellTwo";

        cell = [tableViewtwo dequeueReusableCellWithIdentifier:CellIdentifier2];
        if (cell==nil) {
            cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2];

            }


          UILabel * dateLabelOfTableViewTwo = (UILabel*)[cell viewWithTag:211];
          dateLabelOfTableViewTwo.text = [dateArrayLabelInTableViewTwo objectAtIndex:indexPath.row];

          UILabel *venueLabelOfTableViewTwo=(UILabel*)[cell viewWithTag:214];
          venueLabelOfTableViewTwo.text=[venueArrayLabelInTableViewTwo objectAtIndex:indexPath.row];

    }


     return cell;

    }