2016-04-04 5 views
1

2つのBooleanCheckを私のフォーム(AとB)に追加します。XLFormで2つのBooleanCheckをインポートする方法mutex関係をインポートする

フォームをしたい場合は、 をクリックします。その値はYESになります。 をクリックし、次にB.をクリックします。B値はYESであり、AはNOです。

単純に、彼らはいずれか一方のみが

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

答えて

1

をにisCheckedすることができます私はあなたのaCheckとbcheckは何であるかわからないんだけど、アイデアは、影響を受けるの値を変更した後、テーブルビューまたは行を再ロードすることです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]; 
} 
関連する問題