IOS开发笔记(2)页面之间传递数据几种方式比较
来源:互联网 发布:凯旋软件 编辑:程序博客网 时间:2024/04/30 16:26
今天分享一下页面之间传值的几种方式
1、@property属性
这个不用多说了吧,当页面A 跳转到页面B,在class B中声明属性
@property (nonatomic, copy) NSString *name;
初始化B
FirstViewController *firstVC = [FirstViewController new];firstVC.name = @"name";[self presentViewController:firstVC animated:YES completion:nil];
2、Delegate
当页面A 跳转到页面B,B页面返回时传值给A,可以这样实现,在class B中定义一个@protocol,并声明属性delegate;
#import <UIKit/UIKit.h>@protocol FirstViewControllerDelegate <NSObject>- (void)print;@end@interface FirstViewController : UIViewController@property (nonatomic, assign) id<FirstViewControllerDelegate> delegate;@end.m文件
- (void)backClick:(UIButton *)sender{ [self dismissViewControllerAnimated:YES completion:^{ if ([self.delegate respondsToSelector:@selector(print)]) { [self.delegate print]; } }];}页面A .m实现,要继承FirstViewController的代理
- (void)buttonClicked:(UIButton *)sender{ FirstViewController *firstVC = [FirstViewController new]; firstVC.delegate = self; [self presentViewController:firstVC animated:YES completion:nil];}#pragma mark - FirstViewControllerDelegate- (void)print{ NSLog(@"delegate response");}
3、Block
当页面A 跳转到页面B,B页面返回时传值给A,可以这样实现,在class B中定义一个block,并声明属性block
#import <UIKit/UIKit.h>typedef void (^FirstViewControllerBlock)(NSString *str);@interface FirstViewController : UIViewController@property (nonatomic, copy) FirstViewControllerBlock block;@end.m文件
- (void)backClick:(UIButton *)sender{ self.block(@"first block"); [self dismissViewControllerAnimated:YES completion:nil];}页面A .m实现
- (void)buttonClicked:(UIButton *)sender{ FirstViewController *firstVC = [FirstViewController new]; [self presentViewController:firstVC animated:YES completion:nil]; firstVC.block = ^(NSString *str) { NSLog(@"str is: %@", str); };}
4、NSNotification
(未完,待续。。。)
0 0
- IOS开发笔记(2)页面之间传递数据几种方式比较
- 【Android 开发】 : Activity之间传递数据的几种方式
- 【Android 开发】 : Activity之间传递数据的几种方式
- 【Android 开发】 : Activity之间传递数据的几种方式
- iOS开发:传递数据的几种方式
- ASP.NET 页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET 页面之间传递值的几种方式
- ASP.NET 页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- ASP.NET页面之间传递值的几种方式
- 第七章 进程环境
- Java执行命令获取结果并超时退出
- Microsoft SQL Server 执行dos命令
- 横向滑动的HorizontalListView滑动指定位置的解决方法
- workspace at in use or cannot be created,choose a different one
- IOS开发笔记(2)页面之间传递数据几种方式比较
- MSSQL备份语句
- Hadoop2.61集群安装配置教程
- Android开源项目分类汇总
- 查看死锁
- 【LeetCode】Maximal Rectangle && Maximal Square
- ant打包遇到了系统资源不足
- 生成学习算法概述
- 微信JS-SDK如何使用