2016-01-14 47 views
0

我有一個UITableView使用生成列表的原型單元格。它們都共享相同的原型單元格,因爲它們上面顯示的數據是相同的,但它應該執行的功能並不相同。所有這些單元應該位於同一部分。如何爲每個UITableViewCell單獨點擊

我應該使用6個不同的原型單元並根據NSINdexPath#row更改cellForRowAtIndexPath函數中獲得的哪一個,或者有更簡單的方法來註冊單元格被選中時的自定義邏輯。

例如,讓我們說,我的表視圖看起來是這樣的:

  • 顯示數據 - 點擊時顯示一個彈出式窗口
  • 轉到網站 - 當點擊進入網站
  • 開放的應用 - 當點擊打開另一個應用程序
  • 打開視圖 - 當打開點擊另一種觀點

竟被如何d我分別處理該邏輯?

+0

didSelectRowAtIndexPath方法?那是你在找什麼? –

+0

哪種語言的objective-c或swift? –

回答

1

您可以使用didSelectRowAtIndexPath獲取每個單元的觸摸事件。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    if indexPath.row == 0 { 
     // Show data 
    } else if indexPath.row == 1 { 
     // Go to website 
    }  
    /// etc 

} 

確保已經確立了自己tableViews delegatedatasourceviewController,並讓您的viewController設置這個像這樣:

class MyViewController: UITableViewDataSource, UITableViewDelegate { 
} 
+0

你必須擴展(?)基類「UITableViewController」來訪問它,因爲它在'UITableViewDataSource'中不可用,我使用標準的'UIViewController'考慮我的表視圖不是我唯一的元素 – Hobbyist

+0

請參閱編輯。該特定函數是UITableViewDelegate的一部分,而不是UITableViewDataSource。 –

+0

即使該方法不可用,直接將它應用於UITableViewDataSource工作,無需添加UITableViewDelegate。奇怪。順便說一句,謝謝。定時器後會接受 – Hobbyist

相關問題