2017-02-02 1 views
0

제 질문과 똑같은 질문을하는 또 다른 질문을 보았지만 대답을 통해 setEditing 함수를 호출하라고했습니다 (나는 그것을 시험해 보았다. 그리고 나중에 질문한다). 하지만 편집 버튼을 클릭 할 때만이 함수를 호출하는 방법을 알지 못합니다. 내 바 버튼 항목을 클릭 할 때 내 자신의 BarButtonItem을 만들고이 메서드를 실행할 수 있다고 가정하지만 편집 버튼의 기본 기능이 필요하기 때문에이 방법이 훨씬 쉬울 것으로 생각했습니다.편집 버튼에는 기능이 없으며 셀 왼쪽에 마이너스가있는 빨간색 원이 표시되지 않습니다.

나는 그것에 테이블이있는 UIViewController를 가지고 있습니다. peersTable. 편집 버튼을 클릭하면 완료로 전환되지만 테이블에는 아무런 변화가 없습니다. 내 자신의 UITableViewRowActions을 추가했으며 셀의 왼쪽으로 스 와이프하면 내 사용자 지정 액션이 표시됩니다.

여기 내 코드의 일부입니다 :

class PeerViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, ConnectionManagerDelegate { 

@IBOutlet weak var peersTable: UITableView! 
... 

override func viewDidLoad() { 
    ... 
    peersTable.delegate = self 
    peersTable.dataSource = self 

    self.navigationItem.rightBarButtonItem = self.editButtonItem 
    ... 
} 

가 나는 또한 peersTable.setEditing을 (사실, 애니메이션 : true)를 호출 시도 방법은 자신을,이 경우, 빨간색 마이너스가 나타나지 않습니다. 전에이 문제를 본 적이 없으므로 왜 그런 일이 벌어지는 지 이해할 수 없습니다. 어떻게 든 대의원을 잘못 설정하고 있습니까? 또는 아마도 이전에 프로젝트에서 이전에 해본 적이 있지만 TableView가 아닌 ​​일반 View이기 때문에 아마도 뭔가 잘못하고 있습니다.

미리 감사드립니다. 더 자세한 정보가 필요하면 알려주세요!

+0

는 또한 같은 문제에 직면했다. 콘센트와 같은 클래스에서 tableView 속성을 만들어 클래스와 테이블 뷰를 연결했습니다. @IBOutlet 약한 var productTableView : UITableView! . 스토리 보드의 tableView와 tableView 속성이 연결되어 있어야합니다. 나는 이것이 왜 효과가 있었는지 모르지만. – mumu

+0

@RubaiyatJahanMumu 나는 당신이 Ctrl + PeerViewController 클래스로 tableView를 드래그한다는 것을 가정합니다. PeerViewController 클래스는 이미 이전에 "@IBOutlet weak var peersTable : UITableView!"했습니다. (그리고 대리자 및 데이터 원본으로 설정). 다른 것을 의미하지 않는 한 ... – Logan

+0

다른 위임 메소드, 특히'func tableView (_ : editingStyleForRowAt :)'를 구현 했습니까? 그렇다면 여기에'.delete'를 반환해야합니다. –

답변

1

이것은 TableViewController가 아니기 때문에 편집 버튼을 누르면 tableView가 편집 모드로 자동 설정되지 않습니다.

tableView를 편집 모드로 설정할 수 있도록 setEditing 메서드를 재정의해야합니다.

당신의 ViewController 클래스에이 추가 :

override func setEditing(_ editing: Bool, animated: Bool) { 
    super.setEditing(editing, animated: animated) 
    peersTable.setEditing(editing, animated: animated) 
} 
+0

고맙습니다. – Logan

관련 문제