斯威夫特3 Segue公司中的UITableViewCell控制器

问题描述:

我配置动态细胞中使用的UITableViewCell控制器的表,我想执行赛格瑞点击一个特定的点触手势时斯威夫特3 Segue公司中的UITableViewCell控制器

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但我不能用在goToComments功能performsegue我postcell类?

+0

什么阻止了你在'goToComments(sender:)'中使用'performSegue'?你有没有在Storyboard中添加segue?应用程序崩溃了吗?你会得到什么错误信息?人们需要更多的细节来了解问题。 –

+0

@RoboticCat如果我添加'performSegue(withIdentifier:“goToComments”,发件人:无)'goToComments我得到'使用未解决的标识符' – Chad

+0

什么未解决的标识符 - 你错过了错误消息的部分应该指出什么是不在范围内。这应该全部添加到您的问题。另外,你是否在Stack Overflow中搜索了带有相同错误信息的问题?有很多解决方案;你排除了什么? –

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

  1. 创建一个delegate/protocolNewsFeedVC实现它,并在里面PostCell创建的实例。之后在cellForRowAt中设置delegate方法现在在goToComments中使用该委托并调用其在NewsFeedVC中实现的方法并在该方法内执行segue。

  2. 不要在awakeFromNib方法中添加手势,而是在cellForRowAt方法中添加手势,在NewsFeedVC中显示其操作方法。现在你可以轻松地执行你的赛格。

+0

我无法将图像添加到newsfeedvc作为iboutlet,以便在cellForRowAt添加手势? – Chad

+0

@Chad不明白你的意见,你能否解释一下你的问题。 –

+0

所以我试图通过在cellforRowAt中添加手势来尝试第二种解决方案,但这是在我的'NewsFeedVC'中,而awakeFromNib是'PostCell:UITableViewCell'类的一部分,如果我尝试将图像视图添加到'NewsFeedVC'中,为了添加手势,我得到一个错误'插座无效。插座不能连接到重复数据# – Chad