2012-02-05 29 views
2

如果我想在編輯模式下放置一個tableView。什麼是正確的要求呢?我似乎可以通過調用[super setEditing:YES animated:YES]來編輯一個tableView,編輯模式是否也需要調用[tableView setEditing:YES animated:YES]iOS - setEditing [super setEditing ...]和/或[tableView setEditing ...]

+0

你在什麼類,它的超類是什麼? – mattjgalloway 2012-02-05 20:40:08

+0

我在'UIViewController'的子類中。 – 2012-02-05 23:14:55

回答

1

我假設你在調用UITableViewController的子類?在這種情況下,超級調用是足夠的,因爲當視圖控制器本身開始編輯時,UITableViewController會自動將其表視圖置於編輯模式。

如果你有一個正常的UIViewController,恰好也包含UITableView,你必須自己做。

+0

我在'UIViewController'的子類中調用'[super setEditing:YES animated:YES]'。這就是爲什麼我想知道爲什麼我不需要調用'[tableView setEditing:YES animated:YES]'來讓它工作呢? – 2012-02-05 23:09:46

0

一個方法調用由兩個部分組成:

[messageReciever message]; 

在你的第一個例子中,你正在使用super這基本上意味着將消息發送給setEditing:animated:當前對象,但開始從超類中的方法查找。

在第二個示例中,您將消息setEditing:animated:發送到tableView對象。

UITableViewController實現setEditing:animated:和切換編輯模式的它的tableView。實際上沒有必要使用super,因爲使用self會產生同樣的效果。如果您要覆蓋setEditing:animated:以添加其他行爲,那麼使用super會導致您的其他代碼被繞過。

相關問題