Возникли трудности с передачей строки обратно в предыдущий контроллер представления в Swift.IOS

Программируем под IOS
Ответить
Anonymous
 Возникли трудности с передачей строки обратно в предыдущий контроллер представления в Swift.

Сообщение Anonymous »

Я пытаюсь передать строковое значение обратно предыдущему контроллеру представления с помощью делегата. Кажется, все работает правильно, за исключением того, что по какой-то причине строковое значение, которое я отправляю обратно, не отображается в UITextField в первом контроллере представления, где я этого хочу.
Вот мой соответствующий код:
ViewController "B" (тот, который передает данные обратно в предыдущий контроллер представления):

Код: Выделить всё

    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)
}
Вот код в ViewController «A» (тот, который получает данные от View Controller «B»):

Код: Выделить всё

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)

}
В моем коде выше второй контроллер представления вызывается, когда пользователь выбирает textField. Затем пользователь попадает в UITableView, где он может выбрать элемент из списка. После того, как выбор сделан, пользователь нажимает кнопку «Готово» на панели навигации и должен вернуться к первому контроллеру представления.
Теоретически предполагается, что выбор пользователя из списка должен появиться в текстовом поле в первом контроллере представления. К сожалению, хотя выбор выводится на консоль с помощью функции setField в первом контроллере представления, строка не отображается в textField. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/379 ... r-in-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»