代理和协议的简单讲解,和自己的一些见解
来源:互联网 发布:程序员接活的网站 编辑:程序博客网 时间:2024/05/16 13:07
B类的值要传到A类,但是B做不到,所以B需要一个代理去执行这个传值的方法,所以就会委托A去执行
1 首先是协议的声明位置:
#import <UIKit/UIKit.h>//申明一个协议
@protocol SecondViewDelagate <NSObject]]]]>
@end
2 然后声明协议的类里面定义一个方法让遵守该协议的类去执行
#import <UIKit/UIKit.h>
//申明一个协议
@protocol SecondViewDelagate <NSObject]]]]>
//用来刷新新的功能,这个方法(其实就是改变值或者是刷新值得方法)要在遵守这个协议的类里面去实现
- (void)refresh:(NSString *)sender;
@end
//申明一个协议
@protocol SecondViewDelagate <NSObject]]]]>
//用来刷新新的功能,这个方法(其实就是改变值或者是刷新值得方法)要在遵守这个协议的类里面去实现
- (void)refresh:(NSString *)sender;
@end
之后要定义一个代理,在这里要注意代理的位置:
#import <UIKit/UIKit.h>
//申明一个协议
@protocol SecondViewDelagate <NSObject]]]]>
//用来刷新新的功能,这个方法要在遵守这个协议的类里面去实现
- (void)refresh:(NSString *)sender;
@end
@interface ARSecondViewController : UIViewController
//申明一个协议
@protocol SecondViewDelagate <NSObject]]]]>
//用来刷新新的功能,这个方法要在遵守这个协议的类里面去实现
- (void)refresh:(NSString *)sender;
@end
@interface ARSecondViewController : UIViewController
//定义一个代理
@property (nonatomic,weak) id <SecondViewDelagate> delegate;
@end
之后在B类的.m文件里面通过这个代理去做
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//刷新,在这里用的作用是将代理派发出去(也就是通过代理去修改A中的textlable的值)
[self.delegate refresh:self.label.text];
}
[super viewWillDisappear:animated];
//刷新,在这里用的作用是将代理派发出去(也就是通过代理去修改A中的textlable的值)
[self.delegate refresh:self.label.text];
}
总的来说就是协议的声明是在@interface上面,声明的时候关键字是@protocol,注意不要拉下@end。而代理的定义是在@interface的下面
之后在A类的。h里面去遵循这个协议
#import <UIKit/UIKit.h>
#import "ARSecondViewController.h"
@interface ARFirstViewController : UIViewController <SecondViewDelaga
#import "ARSecondViewController.h"
@interface ARFirstViewController : UIViewController <SecondViewDelaga
之后在A类的.m里面定义代理
B *B = 【B alloc】init】;
B。delegate = self;B的委托A去做(在这里A就是self)
之后在A类的.m文件里面去实现协议里面的方法
- (void)refresh:(NSString *)sender{
self.label.text = sender;
}
0 0
- 代理和协议的简单讲解,和自己的一些见解
- iOS - @property和@synthesize的一些见解
- @property和@synthesize的一些见解
- 学习unity的一些经验和见解
- RunLoop 和 RunTime 的一些见解
- controller和service层的一些见解
- 个人对安卓Studio一些简单实用的快捷键和一些插件的见解
- 对于TabHost的一些自己的见解
- 关于mvp模式自己的一些见解
- 关于mvp模式自己的一些见解
- java ThreadLocal 自己的一些见解
- Spring 代理的讲解(静态代理和动态代理)
- 正向代理、反向代理和透明代理的讲解
- JavaScript中append()和innerHTML的一点自己见解
- C++ new 和 delete的一些使用见解
- 关于iphone开发中的@property和@synthesize的一些见解
- 关于iphone开发中的@property和@synthesize的一些见解
- 关于iphone开发中的@property和@synthesize的一些见解
- 程序使用代码控制UI属性
- int*&、int&*
- 初始ssh_概念+简单使用
- NSUserDefaults的用法
- poj 3352 Road Construction 边双连通分量
- 代理和协议的简单讲解,和自己的一些见解
- 寻找丑数 【微软面试100题 第六十四题】
- 博客导航
- Eclipse下svn的创建分支/合并/切换使用
- c语言输入输出
- iOS 根据文字长度计算Lable高度
- SpringMVC控制器
- HDU's ACM 1028 Ignatius and the Princess III
- wifi robot的安卓端开发经验教训