您的位置:首页 > 产品设计 > UI/UE

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: