2012-05-28 51 views
0

我已經從界面構建器中取得了UISwitch。此時它的狀態爲ON。運行後應用程序當我將其位置更改爲OFF並轉到其他屏幕並再次返回到該屏幕時,切換狀態顯示ON,而不是先前設置的OFF。任何人都可以告訴我如何顯示我設置的UISwitch位置或狀態。現在,當我來到這個開關屏幕時,它總是顯示ON。請幫幫我。提前致謝。如何保持用戶設置值到UISwitch?

回答

3

當您更改值,將它保存到NSUserDefault,所以當你再回來的是屏幕,你看喜好值,並將其設置爲開關

- (void)saveValue { 
    NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults]; 
    [preferences setBool:value forKey:@"switchOnOff"]; 
    [preferences synchronize]; 
} 

- (BOOL)readValue { 
    NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults]; 
    return [preferences boolForKey:@"switchOnOff"]; 
} 
+0

請問你能告訴我什麼是價值。那是viewcontroller變量或全局變量。請解釋一下。請問我是新的iphone。 – python

+0

值是UISwitch.on – Hanon

+0

非常感謝.. :)它的工作:) – python

1

當您更改開關狀態。將值存儲爲NSUserDefaults中的整數。並在viewController的viewDidAppear方法在哪裏開關駐留。剛剛獲得價值從設置NSUserDefaults的開關狀態這樣

//store value to nsuserdefaulrs 
    [[NSUserDefaults standardUserDefaults] setBool:switch.on forKey:@"switchStatus"]; 

//get value from nsuserdefaulrs 

[switch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"switchStatus"]]; 
1

擁有的UISwitch一個出口,

@property (retain, nonatomic) IBOutlet UISwitch *sswitch; 

,並進行連接。

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    if([[NSUserDefaults standardUserDefaults] boolForKey:@"switch"]) 
    { 
     [sswitch setOn:YES] 
    } 
    else 
    { 
     [sswitch setOn:NO] 
    } 
} 

每當開關狀態改變時,保存在NSUserDefaults

0

你必須保存值
1.型號類
2. NSUserDefaults的
3. plist中
4的值。文檔文件。

最好的方法是Model類。您將在Stackoverflow中輕鬆獲得這些代碼。

0

如果它是您在IB中添加的開關,那麼您可以在其中設置其初始狀態。否則,在將交換機連接到IBOutlet後,您可以在viewDidLoad中添加如下內容:

[savePass setOn:NO];

它會將開關置於關閉狀態。您需要確保該開關鏈接到IBOutlet變量。