其实我一开始是想实现微信的修改个人信息那样的效果
就是点击昵称,然后跳转到另外一个页面输入信息
但是细想发现微信的话应该是修改完一个信息后就保存了
而我做的项目可能需要输入多个数据之后再点击提交的。
所以我们需要在点击完成后 将数据传递回上一个页面,
上一个页面显示修改的信息
接着我就去找度娘了。。。
废话不多说直接开始吧
首先我们需要添加一个代理
添加的时候选择Objectivie-c protocol
然后添加如下代码
![](https://yqfile.alicdn.com/img_1c53668bcee393edac0d7b3b3daff1ae.gif?x-oss-process=image/resize,w_1400/format,webp)
![](https://yqfile.alicdn.com/img_405b18b4b6584ae338e0f6ecaf736533.gif?x-oss-process=image/resize,w_1400/format,webp)
1 #import <Foundation/Foundation.h> 2 3 @protocol HDMDelegate <NSObject> 4 -(void)hdmpassValue:(NSString *)value; 5 @end
然后在需要回传的页面的.H文件中增加
#import "HDMDelegate.h"
并添加
@property(nonatomic,assign) NSObject<HDMDelegate> *delegate;
然后在.M文件中添加
![](https://yqfile.alicdn.com/img_1c53668bcee393edac0d7b3b3daff1ae.gif?x-oss-process=image/resize,w_1400/format,webp)
![](https://yqfile.alicdn.com/img_405b18b4b6584ae338e0f6ecaf736533.gif?x-oss-process=image/resize,w_1400/format,webp)
1 -(IBAction)buttonparess:(id)sender 2 { 3 [self.delegate hdmpassValue:valuetextfield.text]; 4 [self.navigationController popViewControllerAnimated:YES]; 5 }
这样我们在点击了按钮后他就会向上级传值了
接着在上一级的界面中实现该代理就可以了
具体的方法如下:
首先先在.h文件中 引入头文件
#import "HDMDelegate.h"
然后 增加代理
<HDMDelegate>
最后在.m文件中实现 代理的方法就可以了
![](https://yqfile.alicdn.com/img_1c53668bcee393edac0d7b3b3daff1ae.gif?x-oss-process=image/resize,w_1400/format,webp)
![](https://yqfile.alicdn.com/img_405b18b4b6584ae338e0f6ecaf736533.gif?x-oss-process=image/resize,w_1400/format,webp)
1 -(void)hdmpassValue:(NSString *)value 2 { 3 self.hdm=value; 4 [mytableview reloadData]; 5 }