2016-04-04 14 views
1

Ich füge zwei BooleanCheck in meinem Formular (A und B).Wie kann XLForm zwei BooleanCheck hinzufügen Mutex-Beziehung importieren

Ich möchte das Formular kann dies tun, wenn ich auf A klicke. Sein Wert wird JA sein; und dann klicke ich auf B. B Wert ist JA und A ist NEIN.

einfach, sie nur einer von ihnen kann

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

Antwort

1

Ich bin nicht sicher isChecked werden, was Ihr aÜberprüfen und bÜberprüfen, aber die Idee ist es, die Tableview oder Zeilen nach dem Ändern der Werte der betroffenen nachladen 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]; 
}