2014-01-29 62 views
0

我明白可以在故事板中以編程方式或使用筆尖創建自定義UITableViewCell。我也明白任何與UI無關的邏輯都應在控制器中,以遵循MVC(模型視圖控制器)規則。具有自定義邏輯的可重複使用的UITableViewCell

在我的情況下,我有一個UITableViewCell顯示用戶信息,如個人資料圖片和用戶名。點擊用戶名執行IBAction,並將用戶帶到適當的配置文件視圖。我在執行服務器API請求的單元中也有一個Follow and Unfollow UIButton。爲了堅持創建單元格的MVC規則,我將一個目標添加到IButton,並處理包含UIViewController中的TouchUpInside事件。

我想在應用程序的整個視圖中重用此單元格,但不需要每次都保持創建目標。 另外,故事板不允許在沒有UIViewTableViewController作爲容器的情況下創建UITableViewCells,這是一種痛苦。我可以在故事板上使用混合筆尖嗎?

什麼是適當的方式來創建單元格並將功能添加到UITableViewCell?

回答

1

因爲你在storyboard/xibs所以你不需要在代碼中每次添加targets。您可以通過xib掛鉤IBAction。然後在tableView:cellForRowAtIndexPath:方法中根據單元格的indexPath設置按鈕的標籤。

或者,您可以創建自定義單元類(從UITableViewCell繼承)並實現該類中的按鈕操作。然後,您可以通過委託將消息傳遞給控制器​​。

如果你想在不同的視圖中重複這個單元格,那麼你最好的選擇是創建一個單獨的類,單獨的xib,而不是storyboard內的特定controller

+0

我喜歡用它自己的類創建'UITableViewCell'' xib'的想法,但這不會違背MVC的規則嗎? API調用不應該放在'controller'中嗎? – pechar

+0

使用獨立的xib創建單元格不會導致MVC,但是,創建Cell的代理以將操作傳遞給控制器​​。 –

+0

確定那很清楚。那麼我可以創建一個Cell的類(從'UITableViewCell'繼承),例如在那裏有Follow/Unfollow API調用? – pechar