2011-06-14 52 views
0

我一直在關注如何使用多個xib創建iPhone應用程序。本教程將所有代碼放在View文件中,而不是View Controller中。在多個xib中使用NSUserDefaults

我現在正在研究使用NSDefaults從我的應用程序的選項屏幕保存設置,然後在用戶返回到選項屏幕時再次顯示它。問題是,雖然,在設置中,無法加載回

在我appdelegate.h文件我有:

NSInteger gMaxDistance; 
@property (nonatomic) NSInteger gMaxDistance; 

在我appdelegate.m文件我有:

@synthesize gMaxDistance; 

在我OptionsView.mi已經得到:

NSUserDefaults *AppSettings = [NSUserDefaults standardUserDefaults]; 
[AppSettings setInteger:(int)distanceSlider.value forKey:@"MaxDistance"]; 
[AppSettings synchronize]; 

如何我記錯這個值和在哪裏呢鱈魚需要去嗎?

如果我把它放在OptionsViewController.m的viewDidLoad方法中,編譯器會抱怨它找不到distanceSlider。

如果我把它放在OptionsView.m文件中(我的所有對象都找到了)在initWithFrame方法中,沒有任何反應。

請幫忙,這已經把我綁在了一天!

+2

只是一個快速提示:按照慣例,像appSettings這樣的變量應該在camelCase中命名,即第一個字母爲小寫。 – mrueg 2011-06-14 23:18:41

+0

我很欣賞關於變量命名的建議。我會把它放在船上! – 2011-06-15 06:22:30

回答

2

你可以得到的是通過做

NSUserDefaults *appSettings = [NSUserDefaults standardUserDefaults]; 
int recalledDistance = [appSettings [email protected]"MaxDistance"]; 

而且你可以從任何的viewController做到這一點。

+0

所以如果我從NSDefaults對象加載recalledDistance,那麼我在哪裏設置滑塊或其他視覺控件來顯示值?我試圖把它放在View(而不是ViewController)的initWithFrame方法中,但是控件沒有顯示被調用的值。 – 2011-06-15 06:25:15