我在邏輯中佔有一席之地,我正在努力尋找它。我的應用程序上有三個按鈕,分別具有兩種狀態。對於每個狀態我都有不同的圖像,按鈕和圖像交換工作正常。我的問題是在加載時,無論按鈕保存的狀態如何,我的按鈕都會加載到選定的狀態。缺陷在我的邏輯? 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];
被稱爲每個按下按鈕時,沒有任何區別。
任何幫助將是偉大的,謝謝。
這就是所謂的‘瑕疵’,在邏輯。不是,‘地板’在邏輯中。 – Das