在这里完成新手,我尝试从tabelViewCell创建一个按钮,按下时显示其行号。
这里是tableViewCell的代码:
var myTableViewController: tableViewController?
@IBOutlet var addButton: UIButton!
@IBAction func addButtonPressed(_ sender: Any) {
myTableViewController?.addCellToHome(self) //call add function
}
来自tableViewController:
func addCellToHome(_ cell: UITableViewCell) //specifies what is to be done when addButton is pressed
{
let row = tableView.indexPath(for: cell)
print(row as! String)
}
有人可以告诉我我做错了什么吗?我在addCellToHome中插入了一个断点,结果发现它从未被调用过。完成难倒。
提前致谢。
答案 0 :(得分:0)
我认为您应该为单元格制定委托协议,例如MyCellDelegate
。
或者从tableViewController中的cellForRow(at: IndexPath)
向单元格按钮添加一个动作。
答案 1 :(得分:-1)
我的预感是你正在创建tableViewController
的新实例,而不是使用内存中的当前实例。请尝试以下操作,而不是创建VC的新实例。
@IBAction func addButtonPressed(_ sender: Any) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let myTableViewController = storyboard.instantiateViewController(withIdentifier :"tableViewController") as! tableViewController
myTableViewController?.addCellToHome(self) //call add function
}
如果您打算在其他方法调用中使用此VC,您也可以像在原始帖子中一样初始化类中任何函数之外的myTableViewController
。