2013-10-06 2 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]; 

В качестве альтернативы, если вы настраиваете кнопку в строителе интерфейса, вы можете установить эти изображения для двух государств там тоже.

Было бы лучше добавить к нему некоторую логику, чтобы сохранить какие-то данные, чтобы установить состояние кнопки в зависимости от этого.

+0

Нажатая кнопка работает отлично, проблема, которую у меня есть, заключается в сохранении. Как только я покину UIViewController, я хочу, чтобы все состояние оставалось неизменным после того, как я выйду из него, и вернемся к нему позже. Он продолжает возвращаться к UIControlStateNormal. – mangoCODE

Смежные вопросы