我有一個自定義的UIView與3 tableviews,tableviews是自我大小取決於他們有的內容,他們顯示不同的筆尖時,他們是空的,當他們有內容。所有這些都嵌入在滾動視圖中,它已經在工作,我的視圖滾動並且表視圖適當地顯示內容並且它們適當地自動調整大小,滾動視圖的大小也可以毫無問題地進行調整。委託用於控制單元格內的按鈕不工作
在兩個tableviews的時候tableviews有項目也有在細胞筆尖一些按鈕,我想用我在那裏所定義的表視圖的視圖控制器內單擊單元格的指數一起訪問。
在這裏,我展示各個tableViews一個項目的知情同意時,Canastas的tableView剛剛刪除項目按鈕和PRODUCTOS的tableView有一個刪除項按鈕和一個步進增加或減少量。
我發現了一個涉及StackOverflow代理的解決方案 Get button click inside UI table view cell,這是我實現的。但由於某些原因,它不起作用,委託方法中的代碼未被執行。
這裏是我的代碼:
CanastasViewCell
import UIKit
protocol CanastasViewCellDelegate: class {
func closeButtonTapped(at index: IndexPath)
}
class CanastasViewCell: UITableViewCell {
@IBOutlet weak var imagenProducto: UIImageView!
@IBOutlet weak var nombreProducto: UILabel!
@IBOutlet weak var descProducto: UILabel!
@IBOutlet weak var precioProducto: UILabel!
@IBOutlet weak var closeButton: UIButton!
weak var delegate: CanastasViewCellDelegate?
var indexPath: IndexPath!
override func awakeFromNib() {
super.awakeFromNib()
}
@IBAction func eliminarProducto(_ sender: AnyObject) {
self.delegate?.closeButtonTapped(at: indexPath)
}
}
CarritoViewController
import UIKit
class CarritoViewController: UIViewController, UITableViewDelegate,
UITableViewDataSource, CanastasViewCellDelegate {
func closeButtonTapped(at index: IndexPath) {
print("Button tapped at index:\(index)")
}
我有一些問題了解你的代碼,因爲它不是英文。 'eliminarProducto'的意思是什麼? – paper1111
eliminarProducto意味着deleteProduct,它應該從indexPath.row中刪除產品(我還沒有編碼該部分),所以現在它應該只是打印在索引處敲擊的Button:(indexPath.row),但它不會打印出來任何東西。 –
檢查您是否已將按鈕正確連接到'@ IBAction' – paper1111