我有TableView的ViewController。在TableView的每个单元格中都有几个按钮(所以我不能使用didSelectRow)。
按下按钮时,我需要从操作中获取父ViewController。所以我将此函数添加到我的自定义单元类:
@IBAction func editBtnPressed (_ sender: Any) {
}
我需要自己去为它添加一些子视图。 如何以自我?
的形式访问根ViewController答案 0 :(得分:3)
我想您应该通过在单元类中创建控制器的属性并在cellForRowAtIndexPath方法中创建单元格后分配属性值来实现。
例如:
单元格中的
weak var yourController : YourViewController?
cellForRowAtIndexPath
中的
cell.yourController = self
然后您可以访问YourViewController
操作中的editBtnPressed
。
但我建议您通过在控制器类中以编程方式创建按钮操作来完成。这是一个很好的方法。
例如:
class YourCellClass: UITableViewCell {
@IBOulet var myBtn: UIbutton!
...
}
Yourcontroller类
cellForRowAtIndexPath
中的
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! YourCellClass
cell.myButton.addTarget(self, action: #selector(self. editBtnPressed), for: .touchUpInside)
并在editBtnPressed
func editBtnPressed (_ sender: Any) {
// you can access controller here by using self
}