在单元格图像中传递所选图像

时间:2019-02-20 11:03:39

标签: ios swift uitableview cell

我的应用程序包含2个点击条。 第一次点击是TableView,第二次点击是VC。 当我使用第一个VC时,我选择了图片并按下按钮,这应该会将所选图片传送到单元格图像上。

我正在尝试将图像保存在UserDefaults中,但事实证明所有行都具有相同的图片

screen

在我的VC中,通过以下方法保存TextField:

func saveButton() { 
let itemsObject = UserDefaults.standard.object(forKey: "items")

var items:[String]

if let tempItems = itemsObject as? [String] {

    items = tempItems

    items.append(nameTextField.text!)

} else {

    items = [nameTextField.text!]
}
UserDefaults.standard.set(items, forKey: "items")
    nameTextField.text = ""
    navigationController?.popViewController(animated: true)
}

然后选择图片

然后我点击“保存”按钮

在“我的表格”视图中:

override func viewDidAppear(_ animated: Bool) {
        //     Load Item Func
        let itemsObject = UserDefaults.standard.object(forKey: "items")

        if let tempItems = itemsObject as? [String] {

            items = tempItems
        }
        table.reloadData()
    }

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

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CellPrototype

        // Configure the cell...
        cell.pointNameLabel.text = items[indexPath.row]
         return cell
    }

2 个答案:

答案 0 :(得分:0)

您可以将图像从单元格传递到detailViewController,这是partail伪代码

tableView (cell , didSelectCellAtIndexPath) {
 if let cell = cell as? CustomCell {
   let image = cell.image 
   let detailVC = DetailViewController(..) // instantiate from storyboard
    detailVC.selectedImage = image 
    navigationViewController.push(detailVC)
}
}

Class DetailVC: UIViewController {
 var selectedImage: UIImage!

 // can access image anywhere in this class after passing  
}

答案 1 :(得分:0)

您可以通过像这样在第二个VC 中创建变量来传递图像

UITableView委托方法

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let cell = tableView.cellForRow(at: indexPath) as? YourCell

    if let DetailVC = self.storyboard?.instantiateViewController(withIdentifier: "DetailViewController") as? DetailViewController{

        DetailVC.Selected_image = cell.YourImageView.image
        self.navigationController?.pushViewController(DetailVC,animated: true)
    }

}

在第二个VC中创建变量

class DetailViewController: UIViewController {

    var Selected_image: UIImage?

    override func viewDidLoad() {
        super.viewDidLoad()
        print(Selected_image)
    }
}