2013-10-06 33 views
1

按下按鈕後,如何保存選定的按鈕狀態?所以,當你和視圖控制器之間進行切換來原始視圖控制器,按鈕保持按下,直到你再次按下它...在UIViewControllers之間導航,保留選定的按鈕圖像

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    addCheck = NO; 
    favCheck = NO; 
} 

- (IBAction)listButton:(id)sender { 

    UIImage *removeListImage = [UIImage imageNamed:@"removeList.png"]; 
    UIImage *addListImage = [UIImage imageNamed:@"addList.png"]; 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    NSMutableArray *favoriteviews = [defaults mutableArrayValueForKey:@"favorite_views_key"]; 

    [defaults setObject:favoriteviews forKey:@"favorite_views_key"]; 
    [defaults synchronize]; 

    if (!addCheck) { 

     [addList setImage:removeListImage forState:UIControlStateNormal]; 

     addCheck = YES; 

     [favoriteviews addObject:@"Apple"]; 
     [favoriteviews addObject:@"Banana"]; 
     [favoriteviews addObject:@"Celery"]; 
    } 

    else if (addCheck) { 
     [addList setImage:addListImage forState:UIControlStateNormal]; 

     addCheck = NO; 

     [favoriteviews removeObject:@"Apple"]; 
     [favoriteviews removeObject:@"Banana"]; 
     [favoriteviews removeObject:@"Celery"]; 
    }   
} 

回答

0

對於最簡單的情況下,可以設置圖片的兩種不同的狀態控制(在這種情況下的按鈕)。 然後檢查每個水龍頭上的狀態以更改它。例如

if(![myButton isSelected]){ 
    [myButton setSelected:YES]; 
    // Do your proceedings when the button is selected here 
} 
else{ 
    [myButton setSelected:NO]; 
    // Do your proceedings when the button is unselected here 
} 

而當你在viewDidLoad設置你的按鈕,只需設置按鈕的圖像爲這兩個國家

[addList setImage:addListImage forState:UIControlStateNormal]; 
[addList setImage:removeListImage forState:UIControlStateSelected]; 

另外,如果你在Interface Builder設置按鈕,可以設置這兩個國家的圖像也在那裏。

最好是增加一些邏輯來堅持某種數據來設置按鈕的狀態。

+0

按下按鈕的作品完美,我遇到的問題是保存。一旦我離開UIViewController,我想讓按鈕進入的狀態保持不變,然後再回來。它繼續回到UIControlStateNormal。 – mangoCODE

相關問題