2012-08-23 2 views
1

저는 UITableView로 작업 중이며 Apple에서 제공하는 표준 편집 도구를 모두 지원하고자합니다. 지금까지는 셀을 스 와이프하여 '삭제'버튼을 표시하고 오른쪽 상단의 '수정'버튼을 탭하면 여러 행 편집 모드로 들어갈 수 있습니다. 괜찮아.UITableView는 지우기와 여러 행 선택을 구분합니다.

문제는, 스 와이프 제스처로 편집 모드로 들어갈 때 "삭제 버튼 만 표시하는 것 외에는 아무것도하지 말라"와 같이 tableView를 실행하고 "휴지통 버튼) "다중 행 편집 모드로 들어갈 때. 내가 어떤 편집 모드인지 알 수있는 방법을 알아낼 수 없다.

예를 들어, 나는 내 테이블의 동작을 확인하기 위해 탭 막대를 숨기는 setEditing 메서드를 추가했다. : 나는 셀 때, 또는 내가 편집 버튼을 누르면에 슬쩍 때

-(void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 

    self.tableView.allowsMultipleSelectionDuringEditing = editing; 
    [super setEditing:editing animated:animated]; 

    if (editing) { 

     self.tabBarController.tabBar.hidden = YES; 

    } else { 

     self.tabBarController.tabBar.hidden = NO; 
    } 

} 

지금, 탭 표시 줄은 숨겨지고, 그 후 정상으로 돌아 간다. 내가 편집 버튼을 눌렀을 때만 숨기고 싶습니다.

어디서 어떻게해야합니까?

감사합니다.

답변

0

송신자를 편집 방법으로 넘겨주지 않는 이유는 무엇입니까?

-(void)setEditing:(BOOL)editing animated:(BOOL)animated sender:(id)sender 
{ 

    self.tableView.allowsMultipleSelectionDuringEditing = editing; 
    [super setEditing:editing animated:animated]; 
    if (editing && [sender isKindOfClass:[UIButton class]]) 
    { 
     self.tabBarController.tabBar.hidden = YES; 
    } 
    else 
    { 
     self.tabBarController.tabBar.hidden = NO; 
    } 

} 
+0

전체 편집 모드 동작이 변경됩니다! 내 스토리 보드에서 tableView는 편집 할 때 단 하나의 선택 만 허용합니다.이 방법만으로 스 와이프 및 다중 행 편집을 할 수 있습니다. 수정 버튼을 누르면 여러 행을 더 이상 선택할 수 없습니다. 이제 셀 왼쪽에 빨간색 버튼이 표시됩니다. 클릭하면 셀에 삭제 버튼이 표시됩니다 ... 'setEditing'이 (가) 더 이상 호출되지 않으므로 의심의 여지가 없습니다. BTW, 나는 수동으로 'setEditing'이라고 부르지 않는다. 그래서 발신자를 추가하는 것이 내 테이블에 "알 수없는"방법이된다고 생각 하겠지? 나는 그것을 어딘가에 불러야 할까? – rdurand

+0

그리고 감사 답변을 많이 주셔서 감사합니다 :) – rdurand

관련 문제