2016-04-04 1 views
1

J'ajoute deux BooleanCheck dans mon formulaire (A et B).comment XLForm peut-il ajouter deux BooleanCheck important la relation de mutex

Je veux que le formulaire puisse le faire quand je clique sur A. sa valeur sera YES; puis je clique sur B. B Valeur soit OUI et A soit NON.

Simplement, ils ne l'un d'entre eux peuvent être isChecked

-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue 
{ 
    // super implmentation MUST be called 
    [super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue]; 
    if ([rowDescriptor.tag isEqualToString:@"aCheck"]){ 
     if(aCheck.value==YES) 
      bCheck.value = NO; 
     } 
    }else if ([rowDescriptor.tag isEqualToString:@"bCheck"]){ 
     if(bCheck.value==YES) 
      aCheck.value = NO; 
    } 
} 

Répondre

1

Je ne sais pas quel est votre aVérifiez et bVérifiez, mais l'idée est de recharger la tableview ou les lignes après avoir changé les valeurs des personnes touchées rowDescriptors

-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue 
{ 
    // super implmentation MUST be called 
    [super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue]; 
    if ([rowDescriptor.tag isEqualToString:@"aCheck"]){ 
     if(aCheck.value==YES) 
      bCheck.value = NO; 
     } 
    }else if ([rowDescriptor.tag isEqualToString:@"bCheck"]){ 
     if(bCheck.value==YES) 
      aCheck.value = NO; 
    } 
    // 
    // The idea is to reloadData or reload indexPaths 
    // 
    XLFormRowDescriptor *rowA = [self.form formRowWithTag:@"aCheck"]; 
    XLFormRowDescriptor *rowB = [self.form formRowWithTag:@"bCheck"]; 
    NSIndexPath *ipA = [self.form indexPathOfFormRow:rowA]; 
    NSIndexPath *ipB = [self.form indexPathOfFormRow:rowB]; 
    [self.tableView reloadRowsAtIndexPaths:@[ipA,ipB] withRowAnimation:UITableViewRowAnimationNone]; 
}