iOS UI 03 协议代理
2015-12-13 15:52
447 查看
//
// 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
// 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
相关文章推荐
- iOS UI 03 协议代理
- iOS UI 03 事件和手势
- iOS UI 03 事件和手势
- UIButton中
- iOS UI 02 UIimageview 和模态切换
- iOS UI 02 UIimageview 和模态切换
- go build命令
- iOS UI 01 课堂笔记 -设计模式
- iOS UI 01 课堂笔记 -设计模式
- IOS UI 01 课堂笔记 -label
- IOS UI 01 课堂笔记 -label
- 使用yuicompressor-maven-plugin插件压缩JS和CSS静态资源
- UILabel: 如何可以更改除底部外的所有边框?
- Android 异步更新UI----handler+thread
- WebKit之CSSValue的继承关系
- JSP利用过滤器解决request中文乱码问题
- JavaSe String,StringBuffer,StringBuilder 简要区别(随记一)
- iOS环信3.0集成 (二)UI文件集成
- iOS多线程开发——NSOperation/NSOperationQueue浅析
- 使用Fluent API进行属性映射【Code-First系列】