2012-05-03 6 views
0

에 값을 저장 스위치/숨기기 버튼을 보여주기 위해 내가 UISwitchsosSwitch 인공 고관절의 이름이이 NSUserDefaults 키에 값을 저장합니다. 스위치 번호가 에 저장됨에 따라 sosBtn을 표시하거나 숨길 수 있습니까? NSUserDefaults? 그리고 코드를 어디에 넣어야합니까? viewDidLoad? 고맙습니다!방법 NSUserDefaults

답변

2

당신이 이미 가지고 있다고 가정 :

@property (retain, nonatomic) IBOutlet UIButton *sosBtn; 
@property (retain, nonatomic) IBOutlet UISwitch *sosSwich; 
- (IBAction)sosSwitch:(id)sender; 

이 시도 :

-(void)viewDidLoad 
{  
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"MySwitch"]) 
    { 
     self.sosBtn.hidden = NO; 
     [self.sosSwich setOn:YES animated:YES]; 
    } 
    else 
    { 
     self.sosBtn.hidden = YES; 
     [self.sosSwich setOn:NO animated:YES]; 
    } 
} 

- (IBAction)sosSwitch:(id)sender 
{ 
    UISwitch *mySosSwitch = (UISwitch *)sender; 
    if (mySosSwitch.on) 
    { 
     self.sosBtn.hidden = NO; 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"MySwitch"]; //YES means sosBtn should be visible 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
    else 
    { 
     self.sosBtn.hidden = YES; 
     [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"MySwitch"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
} 
+0

좋아, 이해 ...하지만 모달 뷰 컨트롤러와 뷰에서 버튼에있는 내 스위치는, 내가 어떻게 할 수 있다면 똑같다? –

+1

그런 경우 선택적 대리자 메서드를 구현해야합니다. 대리자 메서드 콜백의 예제가있는이 내 대답을 확인하십시오. http://stackoverflow.com/questions/8606674/uimodaltransitionstylepartialcurl-doesnt-get-back-to-previous-state-not-dismi/8607949#8607949 – user523234

+0

감사합니다! 그게 날 도와 줬어! –