学习文章http://www.jianshu.com/p/533d0c3caeba
常用的在页面中传值有两个方法:
一个是委托代理
另一个是利用Block
简述
实现两个ViewController.
一个是FirstViewController, 另一个是SecondViewController.
主要是在SecondViewController中的文本框输入文字之后
将值传入到FirstViewController的Lable中进行显示.
其中UI设置部分的代码省略
实现步骤
在SecondViewController中设置一个属性块, 其中参数是NSString类型, 用于接收要传的参数.
typedef void (^SYBlockText)(NSString *value);
@interface SecondViewController : UIViewController
@property (strong, nonatomic) UITextField *textField;
@property (strong, nonatomic) UIButton *button;
@property (copy, nonatomic) SYBlockText myBlock;
@end
然后在FirstViewController中对视图中返回到SecondViewController的Button设置动作函数
- (void)toSencondViewController {
SecondViewController *SecondVC = [[SecondViewController alloc] init];
__weak FirstViewController *weakSelf = self; //弱引用转换,为了防止循环引用
SecondVC.myBlock = ^(NSString *value) {
weakSelf.lable.text = value;
};
[self presentViewController:SecondVC animated:YES completion:nil];
}
之后再SecondViewController中对视图中返回到FirstViewController的Button设置动作函数
- (void)returnFirstViewController{
self.myBlock(self.textField.text);
[self dismissViewControllerAnimated:YES completion:nil];
}
效果图
QQ20160907-0@2x.jpg
网友评论