按另一个button更改button的颜色

首先,我很抱歉的愚蠢的问题,我是超级巨型iOS新手开发者…

可以通过按另一个视图控制器中的另一个button来更改button的颜色并保存它?

提前致谢 !

您可以使用自定义委托,用于将消息从一个对象发送到另一个对象。 所以当你按下另一个视图控制器的button,然后发送自定义代表的方法中的颜色。 在这个StackOverflow答案中引用这个写自定义委托

请参阅下面的示例代码来更改button的颜色: –

secondVwController.h类

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

secondVwController.m类

 - (IBAction)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]; } -(IBAction)buttonPressed:(id)sender { b.delegate=self; //here setting the delegate } 

是的! 你只需要以某种方式传递颜色应该改变的信息(以及可能改变的颜色)到另一个视图控制器。

你可以在这里find可能的对象间通信方法的好介绍: http : //nshipster.com/nsnotification-and-nsnotificationcenter/