Pregunta

Tengo un proceso multiview que el usuario está ingresando en datos y lo estoy guardando en las propiedades de la clase de modelo en cada paso en el camino.

yo suelo textFieldDidEndEditing Para verificar si la entrada es válida y, si es así, guarda los datos ingresados.

En la vista, tengo un evento ContintButtonclicked que verifica si todas las validaciones pasan y si es así, carga la siguiente vista. No establezco las propiedades del modelo aquí, porque creo que no debería tener que hacerlo ya que cada campo se guarda en el campo Modelo 1 a la vez. Sin embargo, noté algunos problemas.

Si el usuario está dentro de un cuadro de texto y hace clic en el botón "Continuar", el evento Continútelo continuo se dispara antes de textFieldDidEndEditing. Lo que termina sucediendo es que la siguiente vista está poblada con el modelo "antiguo" antes de la guardia en que ocurre en textFieldDidEndEditing.

¿Qué me estoy perdiendo? ¿Es apropiado establecer todas las propiedades en continuar? Así es como lo haría si estuviera programando para la web, pero no parece adecuado para una aplicación nativa.

¿Fue útil?

Solución

¿Puedes probar esto en su lugar y ver si eso resuelve tu problema?

textFieldShouldEndEditing:

Otros consejos

Puedes llamar resignFirstResponder en el TextField/TextView activo (o en todos ellos), que activará el textFieldDidEndEditing.

En general, para tales problemas de edición de texto, otro enfoque es abusar del -textField:shouldChangeCharactersInRange:... Método delegado, en el que puede determinar el nuevo valor para cada carácter ingresado. Solo debe volver a este método si no hay otra forma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top