我有具有颜色参数的模型类,以及也有UIColor的视图类。使用委托如何在模型中更改时更改视图颜色。
//Model.h
@class Ball;
@protocol BallDelegate <NSObject>
-(void)ball:(Ball*)ball wasColorChanged;
@end
@interface Ball : NSObject
@property UIColor* color;
@property (weak) id <BallDelegate> delegate;
@end
现在,我如何将值传递给我的视图,如何调用它。
答案 0 :(得分:0)
在 model.m
中[self.delegate wasColorChanged] // call this at the time of color change
在ViewController或任何可以接收事件的地方
在 ViewController.m
中@interface ViewController ()<BallDelegate> // Set ballDelegate in interface
设置您创建对象的代理
myBallModel.delegate = self; // set it where you created your object
并在 viewController.m
中添加委托功能-(void)ball:(Ball*)ball wasColorChanged {
// You will receive the color change event here
}
答案 1 :(得分:0)
你可以这样做:
@protocol Ball
- (void)setColor:(UIColor *)color {
// set new color
_color = color;
// tell the delegate about new color
if ([self.delegate respondsToSelector:@selector(ball: wasColorChanged:)]) {
[self.delegate ball:self wasColorChanged:color];
}
}
@end
另外,不要忘记在之前设置代理。