I have two view controllers, of which one is for entering a value that is stored in NSUserDefaults, the other one contains a label that shows this value. The value is NOT shown immediately after setting the value in the first view controller, but it gets stored in NSUserDefaults. If I open the view controller again via my sidebar, the value is shown. I need the view to update immediately.
This is the code of my first view controller:
import UIKit
class profileSettings: UIViewController {
@IBOutlet weak var vornameLabel: UITextField!
@IBOutlet weak var nachnameLabel: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func saveInformation(sender: AnyObject) {
NSUserDefaults().setObject(vornameLabel.text, forKey: "vorname")
NSUserDefaults().setObject(nachnameLabel.text, forKey: "nachname")
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//in Profil
var destProfile:profile = segue.destinationViewController as! profile
destProfile.vornameLabel = vornameLabel.text
destProfile.nachnameLabel = nachnameLabel.text
}
}
This is the code for my second view controller:
import UIKit
var vorname = ""
var nachname = ""
class profile: UIViewController, SideBarDelegate {
var sideBar:SideBar = SideBar()
var vornameLabel = String()
var nachnameLabel = String()
//Name
@IBOutlet weak var nameTextField: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// SideBar
sideBar = SideBar(sourceView: self.view, menuItems: ["1", "2", "3", "4", "5"])
sideBar.delegate = self
//Name anzeigen
vorname = NSUserDefaults().stringForKey("vorname") ?? ""
NSUserDefaults.standardUserDefaults().setObject(vorname, forKey: "vorname")
nachname = NSUserDefaults().stringForKey("nachname") ?? ""
NSUserDefaults.standardUserDefaults().setObject(nachname, forKey: "nachname")
//Name
nameTextField.text = vorname + " " + nachname
}
Aucun commentaire:
Enregistrer un commentaire