Es gibt Schwierigkeiten, einen String an den vorherigen View Controller in Swift zurückzugebenIOS

Programmierung für iOS
Anonymous
 Es gibt Schwierigkeiten, einen String an den vorherigen View Controller in Swift zurückzugeben

Post by Anonymous »

Ich versuche, mithilfe eines Delegaten einen Zeichenfolgenwert an den vorherigen View-Controller zurückzugeben. Alles scheint korrekt zu funktionieren, außer dass der String-Wert, den ich zurücksende, aus irgendeinem Grund nicht im UITextField im ersten View Controller angezeigt wird, wo ich ihn haben möchte.
Hier ist mein relevanter Code:
ViewController „B“ (derjenige, der die Daten an den vorherigen View Controller zurückgibt):

Code: Select all

    protocol CountryFieldProtocol {
func setField(countryName: String)
}

class TableViewController: UITableViewController {

var countryProtocol: CountryFieldProtocol?
...

func dismiss() {

for item in countries {
if item.isSelected == true {
print("what is the country selected?" + item.name)
countryProtocol?.setField(item.name)
}
}

self.navigationController?.popViewControllerAnimated(true)
}
Hier ist der Code in ViewController „A“ (derjenige, der die Daten von View Controller „B“ empfängt):

Code: Select all

func setField(countryName: String) {

textField.text = countryName
print("the country selected is:" + textField.text!)
}

@IBAction func textFieldEditing(sender: AnyObject) {

textField.resignFirstResponder()
let tableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("CountryList") as? TableViewController
tableViewController?.countryProtocol = self
self.navigationController?.pushViewController(tableViewController!, animated: true)

}
In meinem Code oben wird der zweite View Controller aufgerufen, wenn der Benutzer das textField auswählt. Der Benutzer wird dann zu einer UITableView weitergeleitet, wo er ein Element aus der Liste auswählen kann. Nachdem die Auswahl getroffen wurde, klickt der Benutzer in der Navigationsleiste auf die Schaltfläche „Fertig“ und sollte zum ersten View Controller zurückgeleitet werden.
Theoretisch soll die Auswahl des Benutzers aus der Liste im Textfeld des ersten View Controllers erscheinen. Während die Auswahl von der setField-Funktion im ersten View Controller an die Konsole ausgegeben wird, erscheint die Zeichenfolge leider nicht im textField. Was mache ich falsch?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post