2016-04-19 10 views
0

Ich möchte eine Kontaktliste in meine App implementieren. Ich habe den Add-Kontakt arbeiten und es verwendet aktiv NSCoding zum Schreiben auf die Festplatte für die Kontakte. Es wird korrekt zwischen der Liste der Kontakte und der neuen Kontaktansicht aktualisiert, aber nicht, wenn ich von einer anderen Ansicht wechsle.Daten sind persistent in einer Tabellenansicht, aber nicht beim Wechsel zwischen anderen View-Controllern.

Muss ich prepareforsegue wenn aus den nicht-Kontakt Ansichten in einer Weise, die die Daten bereitet? Oder muss ich meine Set<Contacts> in der ersten Ansicht erstellen und Referenzen übergeben, wenn zwischen Ansichten wechselt. Ab sofort aktualisiert es nur Daten, wenn ich meine unwindsegue von der Add-Kontakt-Ansicht-Controller.

+0

Ich nehme an, in Ihrer Unwindsegue-Funktion verwenden Sie 'tableView.ReloadData()', wenn Sie das auch in 'viewDidAppear' tun sollten, um Daten neu zu laden, wenn Sie von einer anderen Ansicht wechseln. – sgib

Antwort

0

Ich würde mehr Kontext (Code) benötigen, um sicherzustellen, dass dies Ihren Fall lösen wird.

Aber ich hatte ähnliche Probleme in der Vergangenheit für 1 einfachen Grund:

ich in ViewDidLoad() den Refresh-Code zu setzen. Dies wird nur aufgerufen, wenn der ViewController geladen wird (zum ersten Mal, wenn er angezeigt wird), nicht jedes Mal, wenn Sie zu ihm zurückkehren (wird nicht neu geladen).

Sie sollten Ihren Code in ViewDidAppear(), oder ViewWillAppear(), wenn Sie es jedes Mal ausgeführt "zurück" zu Ihrer Ansicht ausführen möchten.

Hier ist der Code:

ViewDidAppear(){ 

some code 
some code 

code that refreshes view with contacts 

} 

Hier ist, was es sein sollte:

ViewDidLoad() { 

some code 
some code 
} 

ViewDidAppear() { 
code that refreshes view with contacts 
} 

-Code, den Sie jedes Mal die Ansicht auf dem Bildschirm in „ViewDidAppear()“ gesetzt werden sollte erscheint ausgeführt werden sollen .