import UIKit
class PhotoTableViewController: UITableViewController {
var photos : [Photos] = []
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
getPhotos()
}
func getPhotos() {
if let context = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext {
if let coreDataPhotos = try? context.fetch(Photos.fetchRequest()) as? [Photos] {
if let unwrappedPhotos = coreDataPhotos {
photos = unwrappedPhotos
tableView.reloadData()
}
}
}
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "moveToDetail", sender: photos[indexPath.row])
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "moveToDetail" {
if let photoDetailView = segue.destination as? PhotoDetailViewController {
if let photoToSend = sender as? Photos {
photoDetailView.photo = photoToSend
}
}
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return photos.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let cellPhoto = photos[indexPath.row]
cell.textLabel?.text = cellPhoto.caption
if let cellPhotoImageData = cellPhoto.imageData {
if let cellPhotoImage = UIImage(data: cellPhotoImageData) {
cell.imageView?.image = cellPhotoImage
}
}
return cell
}
override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
if let context = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext {
let photoToDelete = photos[indexPath.row]
context.delete(photoToDelete)
(UIApplication.shared.delegate as? AppDelegate)?.saveContext()
getPhotos()
}
}
}
}
Created
August 3, 2018 02:02
-
-
Save ameseee/d10854c411ee22af9d7efb07c33ee2b0 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment