2012-10-01 71 views
1

我有一個自定義的UITableViewCell,允許用戶在編輯模式下輸入文本。我注意到股票UITableViewCells,當我向左滑動,然後點擊刪除按鈕,它的表視圖收到commitEditingStyle:forRowAtIndexPath消息。我很好奇這封郵件是從哪裏來的。據我所知,單個單元格沒有對它們所屬表格視圖的引用。如果我想讓我的自定義單元發送此消息,我該怎麼做呢?我想過使用單元格的超視圖,但似乎有一個更簡單的方法。誰調用了commitEditingStyle:forRowAtIndexPath?

回答

0

在添加任何行或列之前,將自動調用此方法(如果您實施數據源協議)。
如果您想知道單元格屬於哪個表格視圖,請使用superview方法。

+0

我知道它會自動調用。我想知道它是如何被調用的,因爲我的自定義單元沒有這種行爲,我希望它。 –

+0

拉米是對的。換句話說,你的單元格可以自由調用'[[[superviewview] dataSource] tableView:[self superview] commitEditingStyle:theStyle forRowAtIndexPath:[[self superview] indexPathForCell:self]]'。但是,你可能不應該這樣做;不要濫用框架。如果您對數據源有話要說,可以更直接地說(即設計自己的消息協議)。 – matt

+0

@matt這就是我所做的。我創建了一個委託類。我想我希望有一個更直接的方法來做到這一點。 –