Domanda

Ho un processo multiview l'utente sta entrando nei dati e sto risparmiando per le proprietà della classe modello ogni passo lungo la strada.

Io uso textFieldDidEndEditing per verificare se l'ingresso è valida, e se sì, salva i dati inseriti.

In vista ho un evento continueButtonClicked che i controlli per vedere se tutte le convalide passano e in caso affermativo carichi la vista successiva. Io non impostare le proprietà del modello di qui, perché penso che non avrei dovuto dal momento che ogni campo viene salvato il campo Modello 1 alla volta. Tuttavia, ho notato alcuni problemi.

Se l'utente si trova all'interno di una casella di testo e fa clic sul pulsante "Continua", l'evento continueButtonClicked prima della textFieldDidEndEditing. Ciò che finisce accadendo è che la vista successiva è popolato con il modello "vecchio" prima il salvataggio accadendo in textFieldDidEndEditing.

Che cosa mi manca? E 'corretto di impostare tutte le proprietà sul Continuare? Ecco come lo farei se fossi di programmazione per il web, ma non mi sembra giusto per un'applicazione nativa.

È stato utile?

Soluzione

Si può provare questo invece e vedere se questo risolve il problema?

textFieldShouldEndEditing:

Altri suggerimenti

È possibile chiamare resignFirstResponder sul campo di testo attiva / TextView (o su tutti), che farà scattare l'textFieldDidEndEditing.

In generale, per questioni di modifica del testo, un altro approccio è quello di abusare il metodo -textField:shouldChangeCharactersInRange:... delegato, in cui è possibile determinare il nuovo valore per ogni carattere digitato. Si dovrebbe ripristinare solo a questo metodo se non c'è altro modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top