2012-02-05 2 views
2

편집 모드에서 tableView를 넣으려는 경우. 그렇게하기위한 올바른 호출은 무엇입니까? 난 편집 모드에서 그냥 [super setEditing:YES animated:YES] 호출하여 tableView 넣을 수있을 것 같습니다 [tableView setEditing:YES animated:YES] 호출해야합니까?iOS - setEditing [super setEditing ...] 및/또는 [tableView setEditing ...]

+0

현재있는 클래스는 무엇이며 수퍼 클래스는 무엇입니까? – mattjgalloway

+0

'UIViewController'의 하위 클래스입니다. –

답변

1

UITableViewController의 하위 클래스에서 이것을 호출한다고 가정합니다. 이 경우 뷰 컨트롤러 자체가 편집을 시작할 때 UITableViewController이 자동으로 테이블보기를 편집 모드로 전환하기 때문에 super 호출이 충분합니다.

일반 UIViewControllerUITableView이 포함 된 경우 직접 처리해야합니다.

+0

'UIViewController'의 서브 클래스에서'[super setEditing : YES animated : YES]를 호출하려고합니다. 그렇기 때문에 내가 왜 [tableView setEditing : YES animated : YES]를 호출 할 필요가 없는지 궁금합니다. –

0

방법 호출은 두 부분으로 구성

[messageReciever message]; 

를 첫 번째 예에서는 기본적으로 현재 객체에 메시지 setEditing:animated:를 보낼 수 있지만, 슈퍼 클래스의 메소드 조회를 시작하는 의미 super을 사용하고 있습니다.

두 번째 예에서는 setEditing:animated: 메시지를 tableView 개체로 보냅니다.

UITableViewControllersetEditing:animated:을 구현하고 해당 편집 모드를 전환합니다 (tableView). 실제로는 super을 사용할 필요가 없으므로 self을 사용하면 동일한 효과가 있습니다. 추가 동작을 추가하기 위해 setEditing:animated:을 무시한 경우 super을 사용하면 추가 코드가 무시됩니다.

관련 문제