2012-05-01 54 views
0

我在邏輯中佔有一席之地,我正在努力尋找它。我的應用程序上有三個按鈕,分別具有兩種狀態。對於每個狀態我都有不同的圖像,按鈕和圖像交換工作正常。我的問題是在加載時,無論按鈕保存的狀態如何,我的按鈕都會加載到選定的狀態。缺陷在我的邏輯? iOS按鈕狀態

在我viewDidLoad中我搶的狀態從內存:

NSString *_greyButtonSavedState = [[NSUserDefaults standardUserDefaults] stringForKey:@"greyButton"]; 

我於是馬上檢查該狀態,應用正確的圖像(這是不工作):

if ([_greyButtonSavedState isEqualToString:@"ON"]) { [_greyButton setSelected:YES]; } else { [_greyButton setSelected:NO]; } 

每次按下按鈕我運行以下:

- (IBAction) _greyButtonPress:(id)sender { 
    if ([sender isSelected]) { 
     NSLog(@"Grey map not created"); 
     [sender setImage:_unselectedGrey forState:UIControlStateNormal]; 
     [sender setSelected:NO]; 
     //save state to memory 
     [[NSUserDefaults standardUserDefaults] setValue:@"OFF" forKey:@"greyButton"]; 
    }else { 
     NSLog(@"Grey map created"); 
     [sender setImage:_selectedGrey forState:UIControlStateSelected]; 
     [sender setSelected:YES]; 
     //save state to memory 
     [[NSUserDefaults standardUserDefaults] setValue:@"ON" forKey:@"greyButton"]; 
    } 
} 

日誌顯示,在viewDidLoad圖像bein使用的g是'selected',但按鈕處於'unselected'模式。我曾嘗試與不:

[[NSUserDefaults standardUserDefaults] synchronize]; 

被稱爲每個按下按鈕時,沒有任何區別。

任何幫助將是偉大的,謝謝。

+0

這就是所謂的‘瑕疵’,在邏輯。不是,‘地板’在邏輯中。 – Das

回答

0

嗯,我注意到在一種情況下你使用UIControlStateNormal,但另一個你使用UIControlStateSelected。我認爲這是你問題的根源。

你是在說:「如果它被選中,設置圖像未選定之」和「。如果沒有選擇,所選擇的圖像設置爲選擇。

+0

就是這樣,謝謝。 – mrEmpty