OC代理传值
来源:互联网 发布:北京市历年人口数据 编辑:程序博客网 时间:2024/06/05 06:51
①在后面的控制器的 .h文件 中声明协议和代理方法
#import <UIKit/UIKit.h>
@protocol NewControllerDelegate <NSObject>
- (void)text:(NSString *)str;
@end
@interface NewViewController : UIViewController
@property (nonatomic,assign)id <NewControllerDelegate> delegate;
@end
②在后面控制器的 .m文件 中将值传入代理方法中
if (self.delegate && [self.delegaterespondsToSelector:@selector(text:)]) {
[self.delegatetext:@"啊啊啊"];
}
③在前面控制器的 .m文件 中遵守协议,设置代理,实现代理方法
#import "ViewController.h"
#import "NewViewController.h"
@interface ViewController () <NewControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
UIButton *button = [UIButtonbuttonWithType:(UIButtonTypeRoundedRect)];
button.frame = CGRectMake(0, 100, 100,100);
button.backgroundColor = [UIColorredColor];
[button addTarget:selfaction:@selector(push)forControlEvents:(UIControlEventTouchUpInside)];
[self.viewaddSubview:button];
}
- (void)push
{
NewViewController *newVC = [[NewViewControlleralloc]init];
newVC.delegate = self;
[self.navigationControllerpushViewController:newVCanimated:YES];
}
- (void)text:(NSString *)str
{
NSLog(@"%@", str);
}
④最后实现效果是:当我点击后面控制器的返回按钮时,控制台打印出了"啊啊啊".
到此,完成从后面控制器向前面控制器传值.
- OC代理传值
- OC中代理模式(代理传值)
- OC-代理-导航控制器中得传值
- oc三种传值方式:通知传值,代理传值,block传值
- OC 六大传值 (属性/代理/通知/KVO/KVC/Tag/单例/Block/全局)
- OC的代理问题
- OC-协议/代理
- OC-代理设计模式
- oc代理模式理解
- OC简单实现代理
- OC重点知识:代理
- oc-protocol和代理
- oc代理模式
- ios oc 代理
- oc委托代理模式
- OC代理,delegate
- OC 代理的写法
- OC 协议与代理
- ZOJ#3210:A Stack or A Queue?
- 全局局部new_delete_malloc_free的调用过程分析
- Apache Commons工具集简介
- POI导出Excel使用教程
- LeetCode 122. Best Time to Buy and Sell Stock II 题解(C++)
- OC代理传值
- 【知识分享】Monster
- Run-Time Check Failure #0 错误小结
- ViewDragHelper详解
- Android HashMap 源码详解
- gdb 调试器
- spring 事务
- loadrunner卸载与安装
- iOS:面试题目整理