多语言展示
当前在线:1360今日阅读:75今日分享:44

ios中的代理传值

ios开发中经常用到代理传值,代理作为从后往前传的利器,现在记录下自己写的代码,供大家参考,供自己查阅。准备工作,就是打开xcode,建两个控制器(viewcontroller),然后在控制器中,添加button按钮,做到点击button按钮可以相互跳转。
工具/原料
1

xcode

2

mac

方法/步骤
1

我们的准备工作,新建两个控制器,viewcontroller和passvaluecontroller,现在点击viewcontroller中的按钮跳转到passvaluecontroller。

2

viewcontroller中新建一个button,点击button跳转到passvaluecontroller UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];    btn.frame = CGRectMake(0, 0, 100, 50);    [btn setTitle:@'aa' forState:UIControlStateNormal];    [btn addTarget:self action:@selector(handel) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:btn];

3

passvaluecontroller中的界面布局如图,点击返回按钮,返回到viewcontroller。

4

从后往前传值,就是点击passvaluecontroller中的按钮返回的时候,把值传给第一个界面viewcontroller。现在就在passvaluecontroller中,写代理。首先我们需要声明协议。让代理人实现的一些方法。在passvaluecontroller.h文件上面声明协议@protocol PassValueViewControllerDelegate @optional- (void)passValue:(NSString *)value;@end

6

声明完了代理属性,基本可以进行传值操作了。进行传值操作,首先在passvaluecontroller.m中页面消失的方法中,写把值传到第一个界面的方法。oa方法就是传值方法,我传的值是字符串@“传值”。passvaluecontroller中的方法就这么愉快地写完了。现再到viewcontroller中接收passvaluecontroller传过来的值。

7

首先引用passvaluecontroller文件#import 'PassValueViewController.h'然后服从协议@interface ViewController ()

8

服从了协议,ViewController就是passvaluecontroller的代理了。需要指定passvaluecontroller的代理为ViewController。我们在哪指定ViewController为代理呢,这一点很关键。再跳转到第一个界面那,这个时机算是比较好的。- (void)handel {    PassValueViewController *pass = [[PassValueViewController alloc] initWithNibName:@'PassValueViewController' bundle:nil];    //代理实现    pass.delegate = self;    [self presentViewController:pass animated:YES completion:nil];}

9

指定了代理,来实现 协议中的方法,并接收从PassValueViewController界面传过来的值。- (void)passValue:(NSString *)value {    NSLog(@'得到传的值为%@', value);}

10

这样就可以啦。

推荐信息