UITableViewCell控制器中的Swift 3 Segue

时间:2017-02-28 15:33:10

标签: ios swift uitableview swift3 segue

我使用UITableViewCell控制器在表中配置动态单元格,并且我想在单击特定点击手势时执行segue

class PostCell: UITableViewCell {

    @IBOutlet var actionComments: UIImageView!

    var post: FeedPost!

    let postID: String = ""

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(likeTapped))
        tapGesture.numberOfTapsRequired = 1

        actionLike.addGestureRecognizer(tapGesture)
        actionLike.isUserInteractionEnabled = true

        let commentGesture = UITapGestureRecognizer(target: self, action: #selector(goToComments))
        commentGesture.numberOfTapsRequired = 1
        commentGesture.delegate = self

        actionComments.addGestureRecognizer(commentGesture)
        actionComments.isUserInteractionEnabled = true

    }

    func goToComments(sender: UITapGestureRecognizer) {



    }
}

这是我的PostCell类(为了这篇文章,我刚刚删除了额外的代码)这是我的tableview,这是我的newsfeedvc

class NewsFeedVC: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!

    var posts = [FeedPost]()

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let post = posts[indexPath.row]

        if let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell") as? PostCell {

            cell.configureCell(post: post)

            return cell

        } else {

            return PostCell()

        }

    }

}

我已将segue设置为identifer但我不能在postcell类的goToComments函数中使用performsegue?

1 个答案:

答案 0 :(得分:1)

要解决您的问题,您有两种选择。

  1. 创建一个Boat Net Targeted Species Yellow Perch Dawn Marie 37 Yellow Perch 500 Kraig K 35 Yellow Perch 400 Dawn Marie 36 Yellow Perch 1100 Dawn Marie 34 Yellow Perch 2000 Lake Lady 30 Yellow Perch 900 Dawn Marie 31 Yellow Perch 1200 Kraig K 33 Yellow Perch 1600 Dawn Marie 44 Yellow Perch 400 Lake Lady 42 Yellow Perch 800 Dawn Marie 40 Yellow Perch 500 Dawn Marie 38 Yellow Perch 600 Lake Lady 39 Yellow Perch 400 并使用delegate/protocol实现它,并在NewsFeedVC内创建一个in实例。在此之后,PostCell中的delegate方法中的cellForRowAt使用该委托并调用您在goToComments中实现的方法并在该方法中执行segue。

  2. 不是在NewsFeedVC方法中添加手势,而是在awakeFromNib方法中添加手势,而不是在cellForRowAt内显示其操作方法。现在您可以轻松执行您的segue。