我試圖使用NSUserDefaults類來保存一堆文本標籤信息。具體來說,我有一個按鈕和一個標籤的視圖。點擊按鈕後,用戶使用「模態」連接將用戶轉到另一個視圖。在第二個視圖中,用戶使用滑塊設置值。單擊按鈕後,單個按鈕也會切換回第一個視圖,並使用「模態」連接。我想插入一段代碼,以便當用戶使用第二個視圖上的滑塊並單擊該按鈕時,它將第一個視圖上的文本標籤更新爲滑塊的值。無法獲取NSUserDefaults存儲方法來適當地更新文本標籤iOS
這是我在第二視圖放按鈕方法下的代碼:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"myValue" [email protected]"myKey"];
[defaults synchronize];
_textLabelOnFirstView.text = [defaults stringForKey:@"myKey"];
另外,根據「viewDidLoad中」的方法相同的視圖控制器,我把下面的代碼:
NSUserDefaults *defaults = [NsUserDefaults standardUserDefaults];
_textLabelOnFirstView.text = [defaults stringsForKey:@myKey"];
但是,這是會發生什麼:在我打開第一個視圖後,我單擊按鈕以轉到第二個視圖。在第二個視圖中,我將滑塊滑動到100,然後單擊按鈕。該按鈕將我帶回第一個視圖,但標籤從未更新,並且不會顯示100.如果關閉應用程序並重新打開,標籤仍然是錯誤的。然而!如果我點擊按鈕轉到第二個視圖,然後點擊第二個視圖的按鈕返回到第一個視圖(即使不調整滑塊),我現在在文本標籤中看到100的值。
任何人都可以請建議如何更改我的代碼,以便用戶從第二個視圖轉換回第一個視圖時,第一個視圖的文本標籤用滑塊的值更新?謝謝!
在沒有看到代碼的其餘部分。如果你只更新viewDidLoad中的標籤,那麼當前的行爲是預期的。 ViewDidLoad只會被調用一次,您可能正在尋找viewDidAppear,每次視圖完成到屏幕的轉換時都會調用它。我還建議viewWillAprear,以便在轉換髮生之前更新該值。 – 2013-05-06 02:03:18
非常感謝馬特,我不知道這兩種方法,這兩種方法都解決了我的問題! – jake9115 2013-05-06 03:12:09