2012-07-12 34 views
-1

我使用具有不同視圖的故事板,並在設置視圖中使用UISwitch。我希望這個開關影響我所有不同視圖的狀態。例如:如果在設置視圖中關閉了開關,則播放視圖中將沒有聲音。如何保存交換機的狀態?如何在所有視圖控制器中反映UISwitch的狀態?

我已經搜索過,並且在很多地方說它必須使用NSUserDefaults,但我不完全理解它是如何工作的。我需要在.m/.h/appdelegate.h/m等文件中寫什麼樣的代碼?

+0

在這個環節,你會發現一個教程,MIG有用:http://www.iphonesdkarticles.com/2008/08/application-preferences.html – WhiteTiger 2012-07-13 15:05:07

回答

0

當用戶激活開關時,您只需在用戶默認值中設置首選項值(例如,關閉聲音)。然後在其他視圖控制器的viewWillAppear或viewDidAppear方法中獲取值以保證持久性。

檢查蘋果的文檔約Preferences and Settings

0

快速閱讀後,它似乎相當簡單。

你會首先創建一個新的本地NSUserObject:

NSUserDefaults *d = [NSUserDefaults standardUserDefaults]; 

然後,您可以從任何的意見給它分配一個值,在這種情況下,我會承擔BOOL就足夠了:

[d setBool:TRUE forKey:@"switchBOOL"]; 
//the key be understood by you and describes the switch 

而且在你的其他觀點viewWillLoad檢索值:

NSUserDefaults *d = [NSUserDefaults standardUserDefaults]; 
[d boolForKey:@"switchBOOL"]; 
+0

我應該在哪裏寫這些代碼行?這足以解決我的問題嗎?我是新手在編程.. – 2012-07-14 08:09:48

+0

這不是一個真正的問題,我可以回答。我建議不要在應用程序代理中設置值。我會假設在視圖故事板的ViewDidLoad中首先推送。 – achi 2012-07-14 15:17:52

相關問題