ios - Swift link Imagen de la matriz Parse usando segues a secondViewController
parse.com (2)
Parece que debes definir un UIImageView en lugar de un UIImage en secondViewController. Su detailImageView
tendrá que ser de tipo UIImageView
. La forma en que lo tienes escrito, es de tipo UIImage
.
En secondViewController, reemplace
var detailImageView = UIImage()
con
var detailImageView = UIImageView()
Luego cambia:
// its this line below....i think
detailImage.image = detailImageView
a
// its this line below....i think
detailImage.image = detailImageView.image
Para manejar el envío de imágenes desde la celda de vista de tabla a la segunda controladora de vista, será necesario tomar la imagen de la celda seleccionada. Esto se vería algo así en su prepareForSegue:
if let myIndexPath = tableView.indexPathForSelectedRow? {
let cell = self.tableView.cellForRowAtIndexPath(myIndexPath)
eventDetailVC.detailImageView.image = cell.postedEventImage.image
}
Sus otras asignaciones en viewDidLoad en secondViewController también son un poco inusuales. Parece que está asignando los valores de texto de UILabels en función de cómo los está nombrando. Si una variable es un UILabel que tener algo llamado algo Label es apropiado. Sin embargo, si el tipo es un String, que se basan en sus asignaciones de variables, que tener algo llamado Label puede ser una fuente de confusión.
Aquí está mi código, estoy tratando de usar la función "prepareForSegue" para enviar una imagen de tableViewController (firstViewController) a mi detailedViewController (secondViewController). He logrado poblar mi primer ViewController desde la nube de análisis sintáctico con éxito y he logrado que mis segundas etiquetas ViewController se actualicen, pero no puedo actualizar imageView. He publicado mi código a continuación
firstViewController
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let eventDetailVC: EventDetailsVC = segue.destinationViewController as! EventDetailsVC
if let selectedArrayIndex = tableView.indexPathForSelectedRow?.row {
eventDetailVC.detailNameLabel = postedEvents[selectedArrayIndex]
eventDetailVC.detailAddressLabel = postedAddress[selectedArrayIndex]
eventDetailVC.detailCityLabel = postedCity[selectedArrayIndex]
eventDetailVC.detailStateLabel = postedState[selectedArrayIndex]
eventDetailVC.detailStartLabel = postedStart[selectedArrayIndex]
eventDetailVC.detailEndLabel = postedEnd[selectedArrayIndex]
eventDetailVC.detailPriceLabel = postedPrices[selectedArrayIndex]
eventDetailVC.detailDescriptionLabel = postedDescription[selectedArrayIndex]
// The error is here....i think
eventDetailVC.detailImageView.image = image
}
}
secondViewController
var detailNameLabel = String()
var detailDescriptionLabel = String()
var detailPriceLabel = String()
var detailStartLabel = String()
var detailEndLabel = String()
var detailAddressLabel = String()
var detailCityLabel = String()
var detailStateLabel = String()
var detailImageView = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
detailName.text = detailNameLabel
detailDescription.text = detailDescriptionLabel
detailPrice.text = detailPriceLabel
detailStart.text = detailStartLabel
detailEnd.text = detailEndLabel
detailAddress.text = detailAddressLabel
detailCity.text = detailCityLabel
detailState.text = detailStateLabel
// its this line below....i think
detailImage.image = detailImageView
}
Por favor alguien me puede ayudar a resolver esto, soy un poco nuevo en todo esto
Su código de guardado creo que querías ver ...
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! EventsCell
postedImages[indexPath.row].getDataInBackgroundWithBlock { (data, error) -> Void in
if let downloadedImage = UIImage(data: data!) {
myCell.postedEventImage.image = downloadedImage
}
}
myCell.eventName.text = postedEvents[indexPath.row]
myCell.eventStart.text = postedStart[indexPath.row]
myCell.eventPrice.text = postedPrices[indexPath.row]
return myCell
}
y luego también está este código sobre cómo anexar a mi matriz postImages
if let objects = objects {
for object in objects {
self.postedImages.append(object.objectForKey("Image") as! PFFile)
self.tableView.reloadData()
}