App maken: ook jij kunt het leren!

 

de iOS Academie Forums

Forums - Producten van de iOS Academie - Het eBook: Apps bouwen met Swift: hoofdstuk 13.6.5.

Marcel  Marcel heeft nog geen Studiekaart. Klokje03 jan 2017, 14:22
Avatar
Avatar
Berichten:4


Er verschijnt een foutmelding nadat ik op de button heb gedruk voor het selecteren van een regel.

Na het runnen van de NavDemo gaat de waarde van de ViewController niet door naar de DetailViewController.

Ik zie wel dat de variabele ' tekst'  de waarde heeft : Geselecteerd: regel 5. Maar deze waarde gaat niet naar de DetailViewController zodra ik op de button druk.

De volgende foutmelding verschijnt dan:  thread 1: signal SIGABRT.

De volgende regel komt dan in het rood te staan: (segue.destination as! DetailViewController).infoText = tekst

 

wie weet wat hier fout gaat en hoe ik dit kan herstellen?

 

Marcel N

Reageer


Admin Roelf  Klokje03 jan 2017, 15:16
Avatar


Marcel, het lijkt erop dat je in de (broncode van) de DetailViewController de property .infoText niet hebt staan, of wellicht fout hebt geschreven. Kijk even in de class-definitie van DetailViewController.swift.

Succes!

 

Reageer


Marcel  Marcel heeft nog geen Studiekaart. Klokje03 jan 2017, 15:41
Avatar
Avatar
Berichten:4


Hallo Roelf,

 

bedankt voor je snelle reactie. 

Kun jij zien waar de fout zit?

Dit is de code voor de DetailViewController plus daaronder de ViewController.

 

import UIKit

class DetailViewController: UIViewController {

@IBOutlet weak var infoLabel: UILabel!

var infoText = ""

override func viewDidLoad() {

super.viewDidLoad()

infoLabel.text = infoText

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

 

Dit is het gedeelte in de ViewController:

 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

let pickerRow = mijnPickerView.selectedRow(inComponent: 0)

let tekst = "Geselecteerd: " + string(for: pickerRow)

(segue.destination as! DetailViewController).infoText = tekst

}

Reageer


Admin Roelf  Klokje03 jan 2017, 16:50
Avatar


Marcel, in de code zit zo te zien geen probleem. Maar... is voor die tweede viewcontroller in het Storyboard ook opgegeven dat het een DetailViewController is? Of staat daar (in de Identity Inspector) misschien nog UIViewController?

 

Reageer


Marcel  Marcel heeft nog geen Studiekaart. Klokje03 jan 2017, 20:03
Avatar
Avatar
Berichten:4


Hallo Roelf,

 

je hebt gelijk. Niet goed gedeclareerd.

Het werkt nu.

 

Bedankt voor je hulp.

 

 

Marcel N

Reageer