2017-06-03 27 views
0

当按下Delete键将删除选定的从Web服务器数据源,但无法加载的TableView对象,之后删除行,无法重新从NSObject的UITableView的数据文件

这里是我的代码,请指点是如何做到这一点或让 我知道我在做这个错误。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell" forIndexPath:indexPath]; 

    Records * RecordsObject; 

    RecordsObject = [recordsArray objectAtIndex:indexPath.row]; 
    cell.textLabel.text = RecordsObject.recordsMname; 
    cell.detailTextLabel.text= RecordsObject.recordsImei; 

    UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [detailButton setImage:[UIImage imageNamed:@"edit"] forState:UIControlStateNormal]; 
    detailButton.frame = CGRectMake(WidthCalculation - 45, 0.0f, 50.0f, 45.0f); 
    [cell addSubview:detailButton]; 
    [detailButton addTarget:self 
        action:@selector(detailsButton:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:detailButton]; 
    [detailButton setTag:indexPath.row]; 


    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [deleteButton setImage:[UIImage imageNamed:@"trash"] forState:UIControlStateNormal]; 
    deleteButton.frame = CGRectMake(WidthCalculation - 75, 0.0f, 50.0f, 45.0f); 
    [cell addSubview:deleteButton]; 
    [deleteButton addTarget:self 
         action:@selector(delButton:event:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:deleteButton]; 



    // Configure the cell... 

    return cell; 
} 

删除按钮功能

- (IBAction)delButton: (UIButton*)button event:(UIEvent*)event 
{ 
    UIButton *delButton = button; 
    NSLog(@"FaceBook Button is sharing %li row's Image", (long)delButton.tag); 

    NSIndexPath* indexPath = [self.tableView indexPathForRowAtPoint: 
           [[[event touchesForView:button] anyObject] 
           locationInView:self.tableView]]; 

    Records *object = self.recordsArray[delButton.tag]; 
    NSLog(@"selected Object %@", object); 
    NSString *id = object.recordsId; 
    NSMutableString * postString = [NSMutableString stringWithString:kdeleteURL]; 
    [postString appendString:[NSString stringWithFormat:@"?%@=%@", kId, id]]; 
    [postString setString:[postString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]]; 

    NSMutableURLRequest *request =[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]]; 

    [request setHTTPMethod:@"POST"]; 

    postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 
    [self.recordsArray removeObjectAtIndex:indexPath.row]; 

      [self.tableView reloadData]; 


} 

请不要让我知道如果你需要更多的信息,是为目标文件或数据检索代码片段从服务器端获取数据的代码。

回答

0
NSIndexPath *index = [[NSIndexPath alloc] init]; 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell" forIndexPath:indexPath]; 

    Records * RecordsObject; 

    RecordsObject = [recordsArray objectAtIndex:indexPath.row]; 
    cell.textLabel.text = RecordsObject.recordsMname; 
    cell.detailTextLabel.text= RecordsObject.recordsImei; 

    UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [detailButton setImage:[UIImage imageNamed:@"edit"] forState:UIControlStateNormal]; 
    detailButton.frame = CGRectMake(WidthCalculation - 45, 0.0f, 50.0f, 45.0f); 
    [cell addSubview:detailButton]; 
    [detailButton addTarget:self 
        action:@selector(detailsButton:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:detailButton]; 
    [detailButton setTag:indexPath.row]; 


    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [deleteButton setImage:[UIImage imageNamed:@"trash"] forState:UIControlStateNormal]; 
    deleteButton.frame = CGRectMake(WidthCalculation - 75, 0.0f, 50.0f, 45.0f); 
    deleteButton.tag = indexPath.row 
    [cell addSubview:deleteButton]; 
    [deleteButton addTarget:self 
         action:@selector(delButton:event:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:deleteButton]; 



    // Configure the cell... 

    return cell; 
} 

- (IBAction)delButton: (UIButton*)button event:(UIEvent*)event 
{ 
    UIButton *delButton = button; 
    NSLog(@"FaceBook Button is sharing %li row's Image", (long)delButton.tag); 

    NSIndexPath* indexPath = [self.tableView indexPathForRowAtPoint: 
           [[[event touchesForView:button] anyObject] 
           locationInView:self.tableView]]; 

    Records *object = self.recordsArray[delButton.tag]; 
    NSLog(@"selected Object %@", object); 
    NSString *id = object.recordsId; 
    NSMutableString * postString = [NSMutableString stringWithString:kdeleteURL]; 
    [postString appendString:[NSString stringWithFormat:@"?%@=%@", kId, id]]; 
    [postString setString:[postString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]]; 

    NSMutableURLRequest *request =[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]]; 

    [request setHTTPMethod:@"POST"]; 

    postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 
    index = indexPath 
} 

如果您获得成功响应,则从数组中删除行和对象。

-(void)serviceResponce() { 
    [self.recordsArray removeObjectAtIndex:indexPath.row]; 
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject: index] withRowAnimation:UITableViewRowAnimationNone]; 
} 
相关问题