我有一个IBAction
打开UIActivityViewController:
@IBAction func share(sender: UIButton) {
let defaultText = "Check out my Pinpoint: " + self.pinpoints[indexPath.row].main + ". Get Pinpoint on the iOS App Store!"
if let imageToShare = UIImage(data: self.pinpoints[indexPath.row].image) {
let activityController = UIActivityViewController(activityItems: [defaultText, imageToShare], applicationActivities: nil)
self.presentViewController(activityController, animated: true, completion: nil)
}
}
错误来自第2行和第3行(从let defaultText
和if let imageToShare
开始。)它说:
使用未解析的标识符' indexPath'
单词pinpoints
是一个存储main(UILabel)和image(UIImageView。)的数组。
如何解决此错误?
答案 0 :(得分:1)
在cellforRowAtIndexPath中给你的按钮一个标签,它等于indexPath.row
someButton.tag = indexPath.row
现在你的功能应该是:
IBAction func share(sender: UIButton) {
let defaultText = "Check out my Pinpoint: " + self.pinpoints[sender.tag].main + ". Get Pinpoint on the iOS App Store!"
if let imageToShare = UIImage(data: self.pinpoints[sender.tag].image) {
let activityController = UIActivityViewController(activityItems: [defaultText, imageToShare], applicationActivities: nil)
self.presentViewController(activityController, animated: true, completion: nil)
}
}
答案 1 :(得分:0)
错误告诉您当前范围中没有变量indexPath
。 (您既没有本地变量也没有具有该名称的实例变量)
您希望在上述代码中使用哪些NSIndexPath
?
您是否有活动的表视图或集合视图,并且您尝试对当前选择进行操作?
解决问题的方法是指向现有变量。 (大概是一个实例变量。)
除非您提供更多信息,否则我们无法告诉您这是什么。
IBAction连接到什么控制?
如果您有一个共享按钮,并且希望它在表格视图中共享所选项目,那么您应该调用表格视图的indexPathForSelectedRow
方法来询问所选单元格。