//
// RootViewController.m
// ui - 04 协议代理!!
//
// Created by dllo on 15/11/11.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import "RootViewController.h"
#import "RootView.h"
#warning 步骤4 关联协议方法(签协议)
@interface RootViewController () <RootViewControllDelegate>
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
RootView *view1 = [[RootView alloc]initWithFrame:CGRectMake(10, 100, 300, 500)];
#warning 步骤5 设置代理人
view1.delegate = self;
[self.view addSubview:view1];
view1.backgroundColor = [UIColor yellowColor];
[view1 release];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#warning 步骤6 - 实现协议方法(订制指定的功能)
- (void)changeVCbackground {
self.view.backgroundColor = [UIColor orangeColor];
NSLog(@"余浩");
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
!!!!Rootview中
//
// RootView.h
// ui - 04 协议代理!!
//
// Created by dllo on 15/11/11.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import <UIKit/UIKit.h>
#warning 步骤3 - 关联协议方法
@protocol RootViewControllDelegate <NSObject>
- (void) changeVCbackground;
@end
@interface RootView : UIView
#warning 步骤2 创建代理
@property (nonatomic, assign) id<RootViewControllDelegate> delegate;
@end
//
// RootView.m
// ui - 04 协议代理!!
//
// Created by dllo on 15/11/11.
// Copyright (c) 2015年 dllo. All rights reserved.
//
#import "RootView.h"
@implementation RootView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self createSubview];
}
return self;
}
- (void)createSubview
{
self.backgroundColor = [UIColor blueColor];
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
button1.frame = CGRectMake(330, 50, 100, 100);
button1.backgroundColor = [UIColor redColor];
[button1 setImage:[UIImage imageNamed:@"login_btn_normal@2x.png"] forState:UIControlStateHighlighted];
[button1 setImage:[UIImage imageNamed:@"login_btn_press@2x副本.png"] forState: UIControlStateNormal];
[button1 addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:button1];
}
- (void)buttonAction:(UIButton *)sender
{
#warning 步骤 1 使用代理调用协议方法
[self.delegate changeVCbackground];
}
@end