我經常有一個帶編輯按鈕的UITableViewController
,當表中沒有行時,我喜歡禁用該按鈕。爲了保持同步,我每次發生可能更新其dataSource
的事件時啓用/禁用按鈕 - 添加第一行,刪除最後一行,在viewDidLoad
等。每當我添加一些新功能,可以影響的內容表,我必須記住要合併這個邏輯。當UITableView發生變化時發出通知
是否有我可以用來簡化這個的UITableView
的一些代表?一種方法可以知道每當表格(或其dataSource
)被修改時,我可以檢查dataSource
中的項目數量並相應地啓用/禁用。
另外,任何其他方法將受到歡迎。
是的,這就是我所期待的 - 我可以子類化NSArray並設置一個協議,以便在添加或刪除項目時通知委託人。不幸的是,我的數據源比這更復雜一點(它是一個字典數組,每個數組都包含另一個數組),所以它不太直接 - 但肯定可行。我希望可能會有一些內置或simlper,我忽略。 –
我還應該提到我的數據源有些不典型 - 它實際上是一種查詢核心數據並將對象按摩到前面提到的字典數組中的方法(通過一些緩存來提高性能)。因此,無論何時創建託管對象,數據源都會自動更新 - 不會直接添加或刪除託管對象。所以我不得不在awakeFromInsert中做一些事情。我會考慮的。 –
不要繼承NSArray。把它包起來。 - 但是,由於您實際上在做更復雜的事情,因此可能會有更好的方法。可能您應該再次提出問題(另一個問題),並更好地描述數據源。 – matt