斯威夫特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类?
答
要解决您的问题,您有两种选择。
创建一个
delegate/protocol
与NewsFeedVC
实现它,并在里面PostCell
创建的实例。之后在cellForRowAt
中设置delegate
方法现在在goToComments
中使用该委托并调用其在NewsFeedVC
中实现的方法并在该方法内执行segue。不要在
awakeFromNib
方法中添加手势,而是在cellForRowAt
方法中添加手势,在NewsFeedVC
中显示其操作方法。现在你可以轻松地执行你的赛格。
什么阻止了你在'goToComments(sender:)'中使用'performSegue'?你有没有在Storyboard中添加segue?应用程序崩溃了吗?你会得到什么错误信息?人们需要更多的细节来了解问题。 –
@RoboticCat如果我添加'performSegue(withIdentifier:“goToComments”,发件人:无)'goToComments我得到'使用未解决的标识符' – Chad
什么未解决的标识符 - 你错过了错误消息的部分应该指出什么是不在范围内。这应该全部添加到您的问题。另外,你是否在Stack Overflow中搜索了带有相同错误信息的问题?有很多解决方案;你排除了什么? –