2012-05-16 26 views
1
保存按鈕狀態

我是新來iphone.I有小疑問,是我有一個按鈕與名稱同步功能,當我們點擊該按鈕下面的操作執行:如何使用NSUserDefaults的

- (IBAction)syncOffClickedInRegisterUserScreen:(id)sender { 
    if ([syncOnorOff.titleLabel.text isEqualToString:@"Sync off"]) { 
     [syncOnorOff setTitle:@"Sync on" forState:UIControlStateNormal]; 
    } 
    else { 
     [syncOnorOff setTitle:@"Sync off" forState:UIControlStateNormal]; 
    } 
} 

由於上面的代碼,當我點擊按鈕標題交替。

如何使用NSUserDefaults將不同標題的按鈕狀態保存。如果有人知道這個請幫助我....

+0

可能重複http://stackoverflow.com/questions/7324689/save-uibutton- state-and-load-with-nsuserdefaults) –

+0

你應該再考慮之前,你應該考慮選擇一些'正確答案'給你的其他14個問題。人們不會那麼樂意幫助,否則... –

回答

4

您需要定義一鍵拯救這個按鈕例如:

#define KEYSTATE @"key.syncState" 

,並在你的函數:

- (IBAction)syncOffClickedInRegisterUserScreen:(id)sender { 

    // Get User Defaults 
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

    if ([syncOnorOff.titleLabel.text isEqualToString:@"Sync off"]) { 
     [prefs setBool:NO forKey:KEYSTATE]; 
     [syncOnorOff setTitle:@"Sync on" forState:UIControlStateNormal]; 
    } 
    else { 
     [prefs setBool:YES forKey:KEYSTATE]; 
     [syncOnorOff setTitle:@"Sync off" forState:UIControlStateNormal]; 
    } 

    // save 
    [prefs synchronize]; 
} 

,然後你可以獲得布爾(在viewDidLoad:例如) 設置按鈕這樣的:

if ([[NSUserDefaults standardUserDefaults] boolForKey:KEYSTATE]) { 
    // Set ON 
} 
else { 
    // Set OFF 
} 
+1

只需添加一個註釋:如果該鍵不存在,boolForKey將返回NO,因此默認值將是同步關閉。 –

0
UIButton *button; 

// get nsuserdefaults 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
// save selected state 
[defaults setBool:button.selected forKey:@"myButtonState"]; 

再後來,經過應用再次啓動...

// restore the selected state 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
button.selected = [defaults boolForKey:@"myButtonState"]; 
[保存的UIButton狀態和負載NSUserDefaults的帶(的