gpt4 book ai didi

ios - 如何在 prepareForSegue 中的 UITapGestureRecognizer 中点击并捕获其中的 UIImage 时获取自定义表格 View 单元格的索引路径

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

好吧,标题中有很多变数,对不起,我不能再简单了。

首先,我有一个自定义表格单元格,其中包含这样的描述

enter image description here

现在,当用户点击单元格本身时,它会转到 View A,但是,有一个 UITapGestureRecognizer 连接到左侧的 UIImage,它连接到转到 View B 的 segue。

一切都很好,但我需要表格 View 单元格内的一些数据,我可以将这些数据传递给 View B,以便在显示 View 后它可以做一些事情。

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if(segue.identifier == "toViewA") {

}else if( segue.identifier == "toViewBFromThatImage" ){

let viewBVC = ( segue.destinationViewController as! viewBVC )
///////sender is UITapGestureRecognizer
///////somehow want to get indexpath here

viewBVC.selectedIndex = SOMEHOW DIRREVED INDEXPATH
}
}

也许我应该在初始化时设置一些东西作为 UIImage 的标签或手势对象?还是我应该首先避免在 prepareForSegue 中尝试这样做?

对此还是个新手,因此非常感谢任何建议。

最佳答案

我建议将 segue 放在表格 View 单元格中是错误的地方。它属于 View Controller ,在 View Controller 上调用委托(delegate)方法来执行它。

在你的单元子类中声明一个协议(protocol) -

protocol MyCustomCellDelegate {
func imageTappedInCell(cell:MyCustomCell)
}

然后声明一个 delegate 属性并在你的手势识别器中使用它 -

class MyCustomCell {

weak var delegate : MyCustomCellDelegate?

...

func imageTapped(recognizer:UIGestureRecognizer) {

if (recognizer.state == .Ended) {
delegate?.imageTapped(self)
}

}

然后在您的 View Controller 中您可以实现委托(delegate)方法。在委托(delegate)方法中,您可以使用单元格来标识索引路径

 class MyTableViewController: UIViewController,MyCustomCellDelegate {


func imageTapped(cell:MyCustomCell) {
self.performSegueWithIdentifier("toViewBFromThatImage",sender:cell)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if( segue.identifier == "toViewBFromThatImage" ){
let viewBVC = ( segue.destinationViewController as! viewBVC )
let senderCell=sender as! MyCustomCell
viewBVC.selectedIndex = self.tableview.indexPathForCell(senderCell)!
}
}
}

关于ios - 如何在 prepareForSegue 中的 UITapGestureRecognizer 中点击并捕获其中的 UIImage 时获取自定义表格 View 单元格的索引路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33093596/

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