2012-06-17 3 views
-1

테이블 뷰 컨트롤러의 편집 모드에서 어떻게 추가 동작을 부과 할 수 있습니까? Phone 애플리케이션의 Recents 섹션과 같은 비헤이비어를 구현하고 싶습니다. 편집을 누르면 Clear 버튼이 왼쪽에 나타납니다. 어떻게해야합니까?테이블 뷰 컨트롤러의 편집 모드에서 왼쪽 막대 버튼 항목 추가

내가

self.navigationItem.rightBarButtonItem = self.editButtonItem; 

그러므로 편집 버튼 내가 나에게 잘 작동하는 삭제 기능을 제공합니다 그 빨간색 원을받을 눌렀을 때 다음

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

이있는 viewDidLoad에서

은 그래서 자동으로 호출된다 tableview 및 기본 데이터가 업데이트됩니다. 모두 잘 작동합니다. 나는 다음과 같은

self.navigationItem.rightBarButtonItem = self.editButtonItem; 
self.navigationItem.rightBarButtonItem.action = @selector(editPressed:); 

같이있는 viewDidLoad의 내용을 수정하고 editPressed에 데려다 것이다 편집 버튼을 누르면

- (IBAction)editPressed:(UIButton *)sender 
{ 
    NSLog(@"In Edit Pressed"); 
} 

구현한다면 :하지만 지금의 tableview에 대한 편집의 정상적인 동작은 손실됩니다.

답변

1

기본보기 컨트롤러 편집 버튼을 사용하는 경우 - (void)setEditing:(BOOL)editing animated:(BOOL)animated (UITableViewController) 메소드를 덮어 쓸 수 있습니다. 따라서이 메소드에 코드를 넣고 super 코드를 넣을 수 있습니다. 코드는 다음과 같습니다.

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    [super setEditing:editing animated:animated]; 

    if (myTable.editing) 
     self.navigationItem.leftBarButtonItem = additionalButtonItem; 
    else 
     self.navigationItem.leftBarButtonItem = nil; 
} 
+0

제 편집을 참조하십시오. 나는 네가 내 질문을 제안하고 세련된 것을 시도했다. 어떤 도움을 주시면 감사하겠습니다. – Dogahe

+0

원본 답변을 편집하고 있습니다. IBAction은 필요 없으며, 정상적인 동작을 유지할 수 있어야합니다. – wquist

+0

감사합니다 wquist! setEditing하는 방법이었다! – Dogahe

관련 문제