2012-12-31 2 views
2

사용자가 각 옵션에서 특정 추가 화면에 액세스 할 수 있도록 5 개의 단일 그룹화 된 셀이있는 UITableView가 있습니다. 사용자는이 화면으로 돌아가서 마지막으로 선택한 셀에 대해 체크 표시를하고 이전 체크 표시를 끌 수 있기를 원합니다.UITableView 정적 셀의 체크 표시를 끄기

나는 이것을 didSelectRowAtIndexPath:에서 달성하려고 노력하고 있지만 올바르게 할 수없는 것처럼 보입니다.

동적 셀에 사용할 수있는 답변이 몇 가지 있지만 정적 인 경우에는 아무에게도 도움이 될 수 있습니까?

답변

2

여러 가지 방법으로 관리 할 수 ​​있지만 더 쉬운 방법 중 하나는 컬렉션에있는 셀에 대한 참조를 저장하여 모든 셀에 메시지를 쉽게 보낼 수 있도록하는 것입니다. 예를 들어 다음과 같은 속성을 추가 할 수 있습니다.

@property (강하고 비 구조적) IBOutletCollection (NSArray) * 셀;

@property (strong, nonatomic) IBOutletCollection(UITableViewCell) NSArray *cells; 

그리고 nib 파일이나 스토리 보드의 각 셀에 연결하십시오. (당신이 인터페이스 빌더를 사용하지 않는 경우, IBOutletCollection을 드롭하고 세포를 만들 때마다 배열을 직접 웁니다.) 다음과 같이

은 그럼 당신은 선택을 관리 할 수 ​​있습니다 IBOutletCollection에 대한

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    for (UITableViewCell *currCell in self.cells) 
    { 
     currCell.accessoryType = UITableViewCellAccessoryNone; 
    } 

    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; 
    selectedCell.accessoryType = UITableViewCellAccessoryCheckmark; 
} 
+0

내가 뭔가 잘못하고있는 것 같지만 속성에 대한 구문이 나와 같이 작동하지 않습니다. IBOutletCollection을 입력하면 ClassName을 묻습니다. IBOutlet을 사용하면 구문이 정상적으로 보입니다. 내가 Xcode에 상당히 익숙하기 때문에 각 셀에 속성을 연결하는 방법을 설명 할 수 있습니까? (스토리 보드를 사용하고 있습니다) –

1

올바른 구문은 :

@property (strong, nonatomic) IBOutletCollection(UITableview) NSArray *cells; 
+0

'@property (강하고 비 구조) IBOutletCollection (UITableViewCell) NSArray * cells; –

관련 문제