我在表格裏面有custem單元格 裏面我有一個按鈕,我想當用戶點擊按鈕時推送viewController,我該怎麼做,以及如何知道該小區內的用戶使用它的按鈕,因爲這裏沒有didSelectRowAtIndexPath
cellView裏面的按鈕我無法知道用戶按下了哪個單元格
回答
添加標籤,並添加目標的過渡功能
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier) as! CustomCell
cell.button.tag = indexPath.row
cell.button.addTarget(self, action: #selector( self.transitonMethod ), forControlEvents: UIControlEvents.TouchUpInside)
return cell
}
從發送按鈕的標籤取indexPath和取細胞這個indexPath.Push您的導航控制器上的控制器
func transitonMethod(sender: AnyObject){
let indexPath = NSIndexPath.init(index: sender.tag)
let cell = tableView.cellForRowAtIndexPath(indexPath)
self.navigationController?.pushViewController(yourController, animated: true)
}
聲明一個IBAction爲如下的建議在IOS 7 - How to get the indexPath from button placed in UITableViewCell:
@IBAction func didTapOnButton(sender: UIButton) {
let cell: UITableViewCell = sender.superview as! UITableViewCell
let indexPath: NSIndexPath = self.tableView.indexPathForCell(cell)
// Do anything with the indexPath
}
或者其他方法:
@IBAction func didTapOnButton(sender: UIButton) {
let center: CGPoint = sender.center
let rootViewPoint: CGPoint = sender.superview?.convertPoint(center, toView: tableView)
let indexPath: NSIndexPath = tableView.indexPathForRowAtPoint(rootViewPoint!)
print(indexPath)
}
然後使用該indexPath來執行任何您需要的操作。
我在這個UItableViewCell類中寫的,但我得到錯誤,它說「沒有成員」tableView「 – joda
你必須在包含TableView的ViewController中聲明此方法... ... 1 - UIButton在你的單元格中,添加約束條件; 2 - 在包含TableView的ViewController中聲明IBAction方法; 3 - 將按鈕鏈接到單元格,並且你在單元格的控制器內部任意圖形(如設置標題); 4發送事件到ViewController,你通過故事板聲明瞭IBAction; – JJBoursier
@JJBoursier你的第一個方法是不安全的,因爲它依賴於tableViewCell的體系結構,它也是錯誤的,因爲'sender.superview'不會讓你細胞,它會讓你到'tableViewCellContentView'。去你需要去兩層的單元格,比如'(sender.superview)?superview' –
在的tableview的cellforRow方法:
1)設定按鈕的標籤例如yourButton.tag = indexpath.row
2)設置yourbutton egbuttonPressed的目標方法(發送者:在目標方法的UIButton)
3)現在,將得到indexpath.row通過sender.tag
創建一個自定義按鈕
class CustomButton: UIButton {
var indexPath: NSIndexPath!
}
在您的自定義單元格創建的CustomButton類型的按鈕添加以下行cellForRowAtIndexPath
cell.yourCustomButton.indexPath = indexPath
定義IBAction
像按鈕在細胞這個
@IBAction func customButtonClicked(sender: CustomButton) {
let indexPath: NSIndexPath = sender.indexPath
// Do whatever you want with the indexPath
}
要訪問'sender.indexPath'發件人應該是CustomButton類型。 –
已編輯。謝謝@SamM – Manish
- 1. 當按下TableView單元格中的按鈕時,我怎麼知道按下了哪一行單元格按鈕?
- 2. 知道在哪個單元格中選擇了哪個按鈕
- 3. 哪個單元格按鈕在swift中按下了tableView 3
- 4. ActionListener如何知道按下了哪個按鈕?
- 5. 如何知道在Node.js中按下了哪個'Submit'按鈕
- 6. 知道哪個按鈕被按下了! GTK
- 7. 我如何知道我按下了哪個TouchableNativeFeedback?
- 8. JSpinner的哪個按鈕被按下了?
- 9. 如何知道選擇了哪個單選按鈕?
- 10. 如何知道在ListView中單擊了哪個按鈕
- 11. 確定用戶按下哪個按鈕
- 12. 我如何知道UItableview中單元格按鈕的點擊
- 13. 我怎麼知道使用Jquery選擇了哪個單選按鈕
- 14. 使事件的多個按鈕,並知道被點擊了哪個按鈕
- 15. 知道在Javascript中按下哪個按鈕
- 16. Xamarin Grid如何知道哪個按鈕被按下
- 17. 如何知道哪個按鈕被按下?
- 18. 我如何知道哪個按鈕在flex中單擊?
- 19. 知道用戶在應用內購買時按下了取消按鈕
- 20. Android的 - 按鈕偵聽知道哪個按鈕被點擊
- 21. 鏈接按鈕裏面的html表格單元格asp.net
- 22. 如何知道點擊了哪個按鈕
- 23. 如何知道winform c#中點擊了哪個按鈕?
- 24. 如何知道點擊了哪個按鈕?
- 25. 知道在Android中點擊了哪個按鈕
- 26. outlook add-in 2010我如何知道用戶按下回覆按鈕?
- 27. 如何知道在列表上下文中點擊了哪個jQuery按鈕
- 28. 如何知道哪個按鈕回傳頁面?
- 29. GridView中的按鈕:我如何知道哪個項目?
- 30. iText(Sharp) - 按鈕字段裏面的模板裏面的單元格
重複http://stackoverflow.com/questions/19000356/ios-7-how-to-get-the-indexpath-from-button-placed-in-uitableviewcell – JJBoursier
@JJBoursier我希望在迅速,可以你爲我解釋一下嗎?我不知道關於objective-c – joda