iOS使用代理模式从后往前传值
来源:互联网 发布:win10 安装ubuntu 分区 编辑:程序博客网 时间:2024/05/29 23:48
①在后面的控制器的 .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:newVC animated:YES];
}
- (void)text:(NSString *)str
{
NSLog(@"%@", str);
}
④最后实现效果是:当我点击后面控制器的返回按钮时,控制台打印出了"啊啊啊".
到此,完成从后面控制器向前面控制器传值.
- iOS使用代理模式从后往前传值
- iOS使用block从后往前传值
- iOS使用block从后往前传值
- ios开发-页面从后往前传值经典例题
- ios使用storyboard中的segue从后往前进行传值
- tableView从后往前传值
- tableView从后往前传值
- IOS学习 Block语法的使用:声明、创建、引用局部变量,使用block从后往前传值
- UI07_导航视图控制器-从后往前传值
- UI08_UITableView界面传值(后往前)
- Objective--C UI Block 实现从后往前传值 学习笔记
- Objective - C UITableView界面传值 从前往后,从后往前
- 字符串后移: 从后往前移!!!
- 从后往前合并两个有序数组
- tac从后往前查看文件
- 第十三周项目1-2(从后往前输出数组中元素的值)
- 从Outlook删除Item时必须从后往前删
- 替换空格(从后往前依次替换的思想)
- Android简易指南针
- 整数的补码表示及其运算分析
- UE4 技巧总结
- mysql 8小时问题
- Android动画四:View的animate方法 (ViewPropertyAnimator)
- iOS使用代理模式从后往前传值
- 数据结构与算法——求最大子矩阵问题
- Leetcode之Basic Calculator & Basic Calculator II
- Dijkstra最短路径算法
- android https安全连接
- android BitmapShader类
- Gson的使用
- 2016蓝桥杯B组——NO.2
- hdu4715 (素数删选法)