限制从URL中选择UITableView中的行

时间:2016-05-16 11:02:17

标签: ios objective-c iphone uitableview

以下代码用于从URL获取数据。我想选择一个有限的3行选择.. Plz帮助我解决这个问题。 TIA

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return [self.countriesArr count];
}


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

    NSUInteger row = [indexPath row];

    static NSString *MyIdentifier = @"tableCell";

    CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:MyIdentifier];


    if (cell == nil) {

        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

        for (id currentObject in topLevelObjects){
            if ([currentObject isKindOfClass:[UITableViewCell class]]){
                cell =  (CustomCell *) currentObject;

            }
        }

    }

    NSDictionary *thisRow = [self.countriesArr objectAtIndex:row];


    if(_WSConstCountryID !=nil && ![_WSConstCountryID isEqual:@"0"] && ![_WSConstCountryID isEqual:@""] && _WSConstCountrySelectedIndex ==row  )
    {
        cell .accessoryType=UITableViewCellAccessoryCheckmark;
    }
    else {
        cell .accessoryType=UITableViewCellAccessoryNone;
    }

    cell.lblTitle.text = [thisRow objectForKey:_WSColumnCountryName];
    NSString *str=[thisRow objectForKey:_WSColumnCountryID];
    NSString *stra=_WSConstCountryID;
    if ([str isEqualToString:stra]) {
        cell .accessoryType=UITableViewCellAccessoryCheckmark;
        cell.highlighted=YES;
    }else
    {
        cell .accessoryType=UITableViewCellAccessoryNone;

    }


    return cell;


}
#pragma mark -
#pragma mark Table view delegate

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


    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    NSUInteger row = [indexPath row];
    NSDictionary *thisRow=[self.countriesArr  objectAtIndex:row];
    NSLog(@"%@",[thisRow description]);


    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];



    if (cell.accessoryType == UITableViewCellAccessoryNone)
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
    else
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

    if(_WSConstCountryID!=nil && ![_WSConstCountryID isEqual:@"0"] && ![_WSConstCountryID isEqual:@""] &&_WSConstCountrySelectedIndex!=row)
    {

        UITableViewCell *cell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:_WSConstCountrySelectedIndex inSection:0]];


        if (cell != nil)
        {
            cell .accessoryType=UITableViewCellAccessoryNone;
        }

    }
    if( cell.accessoryType == UITableViewCellAccessoryCheckmark)
    {
        _WSConstCountryID=[thisRow objectForKey:_WSColumnCountryID];
        _WSConstCountryName=[thisRow objectForKey:_WSColumnCountryName];
        _WSConstCountrySelectedIndex=row ;
    }
    else
    {
        _WSConstCountryID=@"0";
        _WSConstCountryName=@"Select";
        _WSConstCountrySelectedIndex=-1 ;
    }

    [self.navigationController popViewControllerAnimated:YES];

}

1 个答案:

答案 0 :(得分:0)

您可以拥有一个全局变量,并将其值初始设置为0, 在选择和取消选择中增加/减少其值。确保值应在0-3之内,并在值试图越过3时显示相应的消息。