Изменить цвет кнопки, нажав другую кнопку

Сначала я извиняюсь за немой вопрос, я супер разработчик новичка iOS iOS...

Можно изменить цвет кнопки, нажав другую кнопку, чтобы она была в другом контроллере и сохранила его?

Заранее спасибо !

2 ответа

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

См. Пример кода для изменения цвета кнопки: -

Класс secondVwController.h

@protocol customDelegateColor <nsobject>
@required
-(void)getColor:(UIColor*)color;
@end
@interface BWindowController : NSWindowController
{
 id<customdelegatecolor>delegate;
}
@property(nonatomic,assign)id<customdelegatecolor>delegate;
@end
</customdelegatecolor></customdelegatecolor></nsobject>

Класс secondVwController.m

- (********)buttonPressed:(id)sender
{
 //below only calling the method but it is impelmented in AwindowController class
 if([[self delegate]respondsToSelector:@selector(getDataValue)]){
 [[self delegate]getColor:[UIColor redColor]];
 }
}

Класс firstVwController.h

@interface AWindowController : NSWindowController< customDelegateColor> //conforming to the protocol

firstVwController.m класс

//Implementing the protocol method 
 -(void)getColor:(UIColor*)color
 {
 self.btn.color=color;
 }
//In this method setting delegate AWindowController to BWindowController

 -(void)someMethod{
 BWindowController *b=[[BWindowController alloc]init];
 }
 -(********)buttonPressed:(id)sender
 {
 b.delegate=self; //here setting the delegate 
 }


Да! Вам просто нужно как-то передать информацию о том, что цвет должен быть изменен (и, возможно, какой цвет должен быть изменен) на этот другой контроллер представления.

Вы можете найти хорошее введение в возможные методы связи между объектами здесь: http://nshipster.com/nsnotification-and-nsnotificationcenter/

licensed under cc by-sa 3.0 with attribution.