테이블보기를 사용하고 있으며 확인란이있는 사용자 지정 셀이 있습니다. 테이블 뷰로 셀의 체크 박스가 이미 일부 논리 계산에 의해 선택됩니다. 화면 상단에 바 버튼이 있습니다. 내가 원하는 건 그 버튼을 클릭 할 때 선택된 체크 박스와 관련된 수량이 배열에 들어가야한다는 것입니다.셀 재사용 개념의 문제
예를 들어, 현재 테이블 뷰에있는 셀이 6 개있는 경우 모두 모두 선택되어 있지만 현재 4 개만 표시됩니다. 버튼 클릭만으로 4 개의 값이 배열에 추가됩니다.
버튼을 클릭 할 때 선택한 모든 확인란을 어떻게 검색합니까? 버튼의 클릭에 코드는 다음과 같습니다 - (IBAction를) btn_AddRefill_click (ID) 보낸 사람 {
for (int i=0; i < [arr_RxDetails count]; i++) {
NSIndexPath * indexpath = [NSIndexPath indexPathForRow:i inSection:0];
//NSLog(@"The indexpath is %@",indexpath);
MyMedicationCell * cell = (MyMedicationCell *) [tableview cellForRowAtIndexPath:indexpath];
// here I am checking if the button is selected or not.
if ([cell.btn_RxCheck isSelected]) {
//NSLog(@"the Rx id is %@",[[arr_RxDetails objectAtIndex:i]valueForKey:@"RxId"]);
[self.arr_RxNo addObject:[[arr_RxDetails objectAtIndex:i]valueForKey:@"RxId"]];
}
}
NSLog(@"the array is %@",arr_RxNo);
[self.obj_AddRxs didSelectRxs:self.arr_RxNo];
} 루프가 6 시간 동안 실행이 코드에서와 같이
하지만이 검사를 감지 상자가 현재 4 개의 셀에서만 선택 될 수 있습니다. 어떻게해야합니까?
하지만보기를로드 할 때 확인란을 선택했는지 여부를 어떻게 확인할 수 있습니까? 체크 박스는 셀의 일부이기 때문에. 모든 속성은 셀 자체에서 관리합니다. 값을 변경 한 메소드가 뷰 로딩시 실행되지 않아 체크 박스를 감지 할 수 없으며 여전히 4가 선택된 tableview에 의해 관리됩니다. – Shikhar
cellForRowAtIndexPath에서 : 셀을 만들 때 UITableViewController의 메서드 인 확인란 컨트롤에 대상을 추가 할 수 있습니다. 이 방법에서는 체크 박스가 선택되었는지 여부에 대한 값을 저장합니다. –