2016-03-05 1 views
0

Как передать значение текста из UITextField в другой контроллер представления. В настоящее время, когда я переопределяю func prepareForSegue(), он вызывается до того, как пользователь закончит редактирование текстового поля, поэтому переданное значение всегда равно нулю.вызов prepareforsegue после того, как пользователь закончил редактирование uitextfield

ответ

0

У вас есть несколько способов, чтобы идти об этом:

  1. Прямой доступ к стоимости вашего TextField вместо модели, которая звучит, как он обновляется после didFinishEditing
  2. не обновляя модель text только на didFinishEditing вы можете обновить его каждый раз, когда текст изменяется путем внедрения internal func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool, и получить новое значение с let newString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
+0

Однако, 'переопределение func prepareForSegue() 'вызывается до того, как пользователь закончит редактирование текстового поля. В любом случае я могу сделать так, чтобы эта функция вызывалась после того, как пользователь редактирует текстовое поле? Я помещаю эту функцию внутри 'didFinishEditing'? – RyanYue

+0

Пожалуйста, прочитайте оба моих ответа, которые будут работать без хакеров. Вы ** могли бы вместо ** реализовывать 'internal func shouldPerformSegueWithIdentifier (идентификатор: String, sender: AnyObject?) -> Bool' и возвращать' false', а затем в конце 'didFinishEditing' вызывать' performSegue', но это было бы по-моему, очень плохая идея. – sschale