我有一个带有单元格的 tableView。在这个单元格中,我有一个 imageView 和一个覆盖它的按钮。该按钮有一个 IBAction。当点击时,按钮应该召唤 imagePicker。 IBAction 代码位于单元格 subview 中。
@IBAction func MyStatusImageButtonAction(sender: AnyObject) {
// Select Image
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
imagePicker.allowsEditing = false
self.presentViewController(imagePicker, animated: true, completion: nil)
由于这一行,我收到错误消息。
self.presentViewController(imagePicker, animated: true, completion: nil)
错误提示“类型“myCell”的值没有成员“presentViewController”。
我是否应该在承载单元格的 viewController 中加载 imagePicker,然后以某种方式将其传输到单元格?我应该使用不同的代码在单元格中加载 imagePicker 吗?我在这一切都错了吗?
为清楚起见,我的目标是让用户加载此 TableViewController,并且能够仅将图像分配给此单元格中的 imageView。
谢谢你。
最佳答案
编写一个协议(protocol),您的 TableViewController 将为您显示它。
protocol ImagePickerDelegate {
func pickImage()
}
在你的牢房里
var delegate : ImagePickerDelegate?
@IBAction func pickImage(sender: AnyObject) {
delegate?.pickImage()
}
在你的 tableViewController
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("displayImage", forIndexPath: indexPath) as! ImageTableViewCell
cell.delegate = self
return cell
}
func pickImage() {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
imagePicker.allowsEditing = false
self.presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
dismissViewControllerAnimated(true, completion: nil)
var cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0)) as! ImageTableViewCell
cell.displayImageView.image = image
}
希望这有帮助。
关于ios - 如何在 tableViewCell 中运行 imagePicker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34101524/