ios - for - Pasar datos con segue a través de navigationController
segue swift 4 (1)
Estoy tratando de enviar datos desde un viewController a otro. He conectado ViewController a ViewController''s navigationController y luego configuré el identificador en "showItemSegue"
. Me sale un error en estas dos líneas:
var detailController = segue.destinationViewController as ShowItemViewController
detailController.currentId = nextId!
Ilustración de la imagen:
El código:
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
nextId = itemArray?.objectAtIndex(indexPath.row).objectForKey("objectId") as? NSString
self.performSegueWithIdentifier("showItemSegue", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "showItemSegue") {
var detailController = segue.destinationViewController as ShowItemViewController
detailController.currentId = nextId!
}
}
El controlador de vista de destino del segue es el UINavigationController
. Debe solicitar su controlador de vista superior para llegar al controlador de vista de destino real:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showItemSegue" {
let navController = segue.destination as! UINavigationController
let detailController = navController.topViewController as! ShowItemViewController
detailController.currentId = nextId!
}
}