gpt4 book ai didi

ios - 如何在从 Nib 创建的 UITableViewCell 中的按钮上触发 segue 操作?

转载 作者:行者123 更新时间:2023-11-28 15:13:23 25 4
gpt4 key购买 nike

现在我正在从 nib 文件创建一个 TableView 单元格。我在这个 nib 文件中有一个按钮。我希望此按钮触发 Storyboard上特定 View Controller 的转场。

看起来很简单,除了这个 nib 文件在我的应用程序的不同 View Controller 上的许多不同表中使用,我希望按钮在每个实例中都链接到相同的目标 View Controller 。此外,目标 View Controller 还包含一个以该 nib 文件作为单元格的表,这意味着它也需要链接到自身。

出于这些原因,如果有一个解决方案将此代码包含到所述 nib 文件的 UITableViewCell 子类中,我会很高兴。 (但是我怀疑这是可能的。)

我想要的功能的一个很好的例子是 Instagram。想一想 Instagram 上的几个不同选项卡如何具有包含如下单元格的表格:

enter image description here

无论您在哪个选项卡中,单击此单元格左上角的用户名都会将您转换到用户 View Controller ,即使您已经在用户 View Controller 中也是如此:

enter image description here

最佳答案

在这里你可以这样做:

1) 无需标签提供2)获取按钮位置并根据该位置执行任务3) ProductStarImage//是我的按钮名称

第一步:

 //IBOutlets
@IBOutlet weak var CategoriesTableView: UITableView!

//TableCell identifier
let cellReuseIdentifier = "Cell"
var cell = CustomTableCellClass()

第二步:在TableView的cellForRowAt中

  //setting cell data
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = self.CategoriesTableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! CustomTableCellClass

cell.layer.shadowColor = UIColor.gray.cgColor
cell.layer.shadowRadius = 2

//add a action to button
cell.ProductStarImage.addTarget(self, action: #selector(CategoriesVC.FavouriteButtonHandler(sender:)), for: .touchUpInside)


return cell
}

第 2 步:按钮处理程序

//Favourite button Action Handler
@objc func FavouriteButtonHandler (sender: UIButton) {

//assign current cell to global cell declared //dequeue
cell = self.CategoriesTableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! CustomTableCellClass
//get CGPoint of button selected
let buttonPosition : CGPoint = sender.convert(CGPoint.zero, to: self.CategoriesTableView)
//get indexPath from CGPoint of Button
let indexPath : IndexPath = self.CategoriesTableView.indexPathForRow(at: buttonPosition)!
//Now assign selected cell indexPath to Cell declared globally
cell = self.CategoriesTableView.cellForRow(at: indexPath)! as! CustomTableCellClass


//here perform action required
like - cell.ProductStarImage //any action

self.CategoriesTableView.reloadRows(at: [indexPath], with: .none)
}

关于ios - 如何在从 Nib 创建的 UITableViewCell 中的按钮上触发 segue 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47256572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com