按另一个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/