2017-05-04 1 views
0

내 스토리 보드에서 왼쪽 막대 버튼 항목으로 취소 버튼을 추가 한 UITableViewController (UINavigationController에 임베드 됨)이 있습니다.UINavigationController bar의 기본 '편집'버튼을 억제하는 방법은 무엇입니까?

실행시 CANCEL 버튼은 나타나지 않지만 EDIT 버튼은 실행됩니다.

내가 명시 적으로 EDIT 버튼을 추가하지 않은 때문에 비활성화 된 상태에서 편집 기능의 기본 구현을 지켰다 :

// Override to support conditional editing of the table view. 
override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { 
    // Return false if you do not want the specified item to be editable. 
    return false 
} 

내가 편집 버튼이 줄을 숨길 수있는 방법을 검토 한 결과 코드 작동 :

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationItem.leftBarButtonItem = nil 
} 

... EDIT 버튼이 숨겨져 있습니다. 그러나 CANCEL과 다른 모든 버튼을 숨 깁니다.

나는 명시 적으로 EDIT 버튼을 보여줍니다 코드, 즉 :

self.navigationItem.leftBarButtonItem = self.editButtonItem 

를 발견했다 그러나 취소에 대한 동등한를 찾을 수 없습니다.

그래서 EDIT 버튼을 숨기고 CANCEL 버튼을 표시하는 방법이 있습니까?

--- UPDATE # 1 ---

은 이미 부착 된 스크린 샷마다 함께 IBOutlet을 통해 내 클래스 코드에 취소 버튼을 연결했다. enter image description here

--- UPDATE # 2 ---

는 지금

tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath)

tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)

이 주석 처리되어 있음을 보장했다. 그래서, 내가 말할 수있는 한, 행 편집을 가능하게하는이 TableViewController에 대해서는 아무것도 없습니다. 아직 'EDIT'버튼이 계속 나타나고 'CANCEL'버튼이 난독 화됩니다.

+1

스토리 보드의 스크린 샷이 도움이 될 것입니다. –

+0

취소 버튼과 편집 버튼이 모두 왼쪽에 있습니까? 그렇다면 반드시 취소 버튼의 제목을 변경하고 해당 버튼이 부울 값으로 선택되었는지 확인하고 코드 및 제목을 변경해야하는지에 대해 한 가지해야합니다. – Akash

+0

@Akash, 내가 무엇을 요구하는지 정확히 모르겠습니다. 나는 이것을 '취소'보다는 '커스텀'시스템으로 바꾸려고 노력했다. 단추의 제목도 변경했지만 변경하지 않았습니다. 그리고 그 버튼이 bool value로 선택되어 있는지 확인하면 무엇을 의미합니까? – Dave

답변

0

leftBarButtonItems 그것은 당신의 취소 버튼을보기 컨트롤러에 대한 navigationItem의 leftBarButtonItems에 추가 된 같은 소리 leftBarButtonItem

약간 다른 것입니다,하지만 당신은 당신의 클래스에 대한 참조가 없습니다. IBOutlet에 대한 참조를 만들고 편집 버튼과 동일한 방법으로 명시 적으로 leftBarButtonItem으로 설정할 수 있어야합니다.

+0

이미 취소 버튼으로 IBOutlet이 설정되어 있습니다. 스토리 보드 및 코드 스크린 샷이 포함 된 내 질문에 대한 업데이트를 확인하십시오. – Dave

0

Facepalm time.

self.navigationItem.leftBarButtonItem = self.editButtonItem

이 줄을 삭제하면 런타임에 EDIT 버튼을 제거 : 내가 편집 버튼을 가지고 다른 클래스의 방법을 통해 복사 한

명시 적으로 다음 줄을 표시.

관련 문제