Передача выбранного изображения в изображение ячейки - PullRequest
0 голосов
/ 20 февраля 2019

Мое приложение состоит из 2 полос крана.Первый тап - это TableView, а второй - VC.Когда я на первом VC, я выбрал изображение и нажимаю кнопку, которая должна передать выбранное изображение на изображение ячейки.

Я пытаюсь сохранить изображение в UserDefaults, но затем получается, что все строкис той же картинкой

screen

В моем ВК я сохраняю 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 голосов
/ 20 февраля 2019

Вы можете передать изображение, создав переменную в Второй 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)
    }
}
0 голосов
/ 20 февраля 2019

Вы можете передать изображение из ячейки в деталь. Контроллер здесь - это пример псевдокода

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  
}
...