2011-07-12 51 views
2

我想保存swtich狀態並在程序重新啓動時加載它。保存並加載UISwitch狀態

[[NSUserDefaults standardUserDefaults] setBool:switchControl.on forKey:@"switch"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

這是節約部分

BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"]; 
NSLog(@"%@",[email protected]"YES":@"NO"); 
if(test == YES) 
    [switchControl setOn:YES animated:YES]; 
else 
    [switchControl setOn:NO animated:YES]; 

這是一種需要設置切換到其value.I這樣做在viewDidLoad方法,因爲當我關閉應用程序,並重新啓動它的一部分我希望開關的狀態設置保存的部分。

但它仍然顯示默認部分可以幫助我設置它嗎?

回答

11

您是否將交換機創建爲具有屬性的IBOutlet?如果是這樣,我認爲你的問題是你不把switchControl稱爲self.switchControl

那麼你的正確保存的語句將成爲

[[NSUserDefaults standardUserDefaults] setBool:self.switchControl.on forKey:@"switch"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

我動議通過設置開關到viewWillAppear的一部分,像這樣做:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"]; 
    NSLog(@"%@",[email protected]"YES":@"NO"); 
    [self.switchControl setOn:test animated:YES]; 
} 

我拿出了一個不必要的如 - 對你來說也是如此。

+0

它的工作原理我不使用Iboulet部分,所以我不使用自己:)謝謝 –

+0

卓越的解決方案!做得好! – Mannopson