Trouble getting NSUserDefaults storage method to appropriately update text label iOS -


i'm trying use nsuserdefaults class hold bunch of text label info. specifically, have view button , label. when button clicked, takes user view using "modal" connection. in second view, user uses slider set value. single button shifts first view upon clicking, using "modal" connection. want insert piece of code when user uses slider on second view , clicks button, updates text label on first view value of slider.

this code put under button method in second view:

nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults]; [defaults setobject:@"myvalue" forkey@"mykey"]; [defaults synchronize]; _textlabelonfirstview.text = [defaults stringforkey:@"mykey"]; 

also, same view controller under "viewdidload" method, put following code:

nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults]; _textlabelonfirstview.text = [defaults stringsforkey:@mykey"]; 

however, happens: after open first view, click button second view. in second view slide slider 100, , click button. button takes me first view, label never updated, , not 100. if close app , reopen, label still wrong. however! if click button go second view, , click second view's button first view (even without adjusting slider), see value of 100 in text label.

can please suggest how change code first view's text label updated slider's value user transitions second view first? thanks!

as matt g pointed out, using viewwillappear or viewdidappear instead of viewdidload correctly solved problem being called each time view appeared, instead of first instance


Comments