码迷,mamicode.com
首页 > 其他好文 > 详细

代理设计模式---传值

时间:2015-07-06 23:23:13      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

1.基于MVC设计模式---实现低耦合,层与层之间实现独立,增强代码的复用性,充分实现M层和V层之间的独立

技术分享

2.利用代理模式 实现从V层向C层传值---在C层拿到V层的数据,从而对数据本身做一些改变(操作),进而实现V层视图的改变

 2.1协议实现

     技术分享

 2.2委托实现

     技术分享

    技术分享

技术分享

 

技术分享

   技术分享

3.代理实现

   @interface BCRootViewController ()<BCRootViewDelegate>

@property(nonatomic,retain)BCRootView *rootView;

@property(nonatomic,assign)UIView *optView;

@end

@implementation BCRootViewController
- (void)dealloc
{
    [_rootView release];
    [super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
-(void)loadView
{
    self.rootView = [[BCRootView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.view = self.rootView;
    [_rootView release];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    /**
     *   设置根式图的代理 为自己
     */
    self.rootView.delegate = self;
    
    /**
     *
     */
    
    self.optView = self.rootView.redView;
}

#pragma mark ---segment的点击方法
- (void)BCRootViewSegementDidClicked:(UISegmentedControl *)send
{

    if (send.selectedSegmentIndex == 0) {
        self.optView = self.rootView.redView;
    }else{
    
        self.optView = self.rootView.blueView;
    }
}
#pragma mark ---slider的点击方法
- (void)BCRootViewSliderDidClicked:(UISlider *)redSlider :(UISlider *)greenSlider :(UISlider *)blueSlider
{

    self.optView.backgroundColor = [UIColor colorWithRed:redSlider.value green:greenSlider.value blue:blueSlider.value alpha:1.0];
}

#pragma mark --- switch的点击方法
- (void)BCRootViewSwitchDidClicked:(UISwitch *)sender
{

    if (sender.isOn == YES) {
        self.optView.hidden = YES;
        return;
    }
    self.optView.hidden = NO;
    
}

#pragma mark --- stepper的点击方法
- (void)BCRootViewStepperDidClicked:(UIStepper *)sender
{

    self.optView.frame = CGRectMake(self.optView.frame.origin.x, self.optView.frame.origin.y, self.optView.frame.size.width, sender.value);
}

代理设计模式---传值

标签:

原文地址:http://www.cnblogs.com/bachl/p/4625569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!