2012-01-19 10 views
5

Come puoi immaginare sono un nuovo programmatore e ho difficoltà a ottenere una cosa semplice! Realizzo un'app con più controller di visualizzazione. Ogni controller ha campi di testo e oggetti UIsegmentedControl. Quando mi sto spostando da un controller di vista all'altro (se si tratta di un modal trantition se ciò è importante), il contenuto del precedente (voci di testo e opzione di controllo segmentato) si ripristina al loro stato originale. Come posso farli mantenere il loro stato precedente? Grazie in anticipo.Xcode: Storyboard e conservazione dei dati in ogni controller

risposta

2
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    bViewController *deneme = [segue destinationViewController]; 
    [deneme setPassedValue:label.text]; 
} 

questo pezzo di codice risolverà il vostro problema, spero. Salva l'etichetta di qualunque cosa ci sia dentro. E devi aggiungere altro codice ad altre classi.

Se questo codice ti aiuta a dirmelo e posso darti l'intero codice.

0

Per salvare lo stato dell'applicazione è possibile utilizzare una classe del modello, seguendo il paradigma MVC (model-view-controller) consigliato. Maggiori informazioni qui: Retain view state upon reloading

Come alternativa si potrebbe utilizzare l'evento viewWillDisappear: per salvare il vostro stato di visualizzazione, e quindi ripristinarlo sull'evento viewWillAppear:.

L'evento viewWillDisappear: viene generato prima che la vista scompaia e viewWillAppear: viene generato prima che la vista venga messa in primo piano, essendo l'ideale per apportare eventuali modifiche all'interfaccia utente.

Questi eventi potrebbero essere già state dichiarate per voi nel vostro controller della vista, ma nel caso in cui non sono controllare i prototipi qui: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

+1

Grazie per la risposta, ma sfortunatamente non riesco a capire molto la Documentazione di Apple. Potresti fornire un esempio di come una voce di un campo di testo verrà salvata e ripristinata usando viewWillDisappear e viewWillAppear? –

0

È inoltre possibile utilizzare un controller di navigazione per spostarsi da una vista all'altra. In questo modo, si sposterà la nuova vista sulla parte superiore della precedente, e quando si torna indietro, la vista precedente ha mantenuto il suo stato. vedere questo tutorial per ulteriori informazioni su storyboard e UINavigationController: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

Problemi correlati