ViewController之间如何传递数据
来源:互联网 发布:出租房网络掉线 编辑:程序博客网 时间:2024/06/01 09:30
我们假设有 视图控制器A 和 视图控制器B,其中我们设视图控制器B 是由 视图控制器A通过Navigation controller Push过去的,也就是说视图控制器B是视图控制器A的子视图控制器。
下面我们就分别通过 A->B 和 B->A传递数据说明两种在视图控制器之间传递数据的方法。
1.由视图控制器A传递数据给视图控制器B
- 这里,我的视图控制器A是 ViewController 视图控制器B是CheckViewController。在Storyboard上面连接视图控制器A和视图控制器B,点击连线,在属性设置窗口设置 segueidentifier. 这里我们将其设置为 MainToCheck.
- 在CheckViewController.h文件中定义属性_showArray用于接收数据
@property (strong, nonatomic) NSArray *showArray;
- 在ViewController.m文件中设置- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if ([[segue identifier] isEqualToString:@"MainToCheck"]) { CheckViewController *CheckVC = [segue destinationViewController]; CheckVC.showArray = [[NSArray alloc] initWithArray:_currentArray]; }}
这样就完成了A->B的数据传递
2.由视图控制器B传递数据给视图控制器A
从子视图控制器向父视图控制器传递数据无法利用segue。通常的做法是利用protocol做一个监听器。具体方法如下:
- 在CheckViewController.h中添加协议(注意添加的位置是在#import和#interface之间):
@class LoadViewController;@protocol CheckViewDelegate <NSObject>-(void)LoadDataViewController:(CheckViewController *)controller didFinishLoadData:(NSMutableArray *)loadedArray;@end
- 在CheckViewController.h中添加属性 delegate作为监听器。
@property (nonatomic, weak) id <LoadViewDelegate> delegate;
- 在CheckViewController.m中调用该方法。
[self.delegate LoadDataViewController:self didFinishLoadData:testArray];
- 在ViewController.h文件中添加协议。
- 在Push出CheckViewController实例时添加设置监听器
CheckVC.delegate = self;
- 在ViewController.m文件中实现第三步中的方法。
-(void)LoadDataViewController:(CheckViewController *)controller didFinishLoadData:(NSMutableArray *)loadedArray{ self.currentArray = loadedArray;}
这样就完成了B->A的数据传递。相对复杂一些。
0 0
- ViewController之间如何传递数据
- 如何在两个ViewController之间传递数据
- 如何在两个ViewController之间传递数据
- ios中两个viewcontroller之间如何传递数据
- ios不同的viewcontroller之间数据传递方法
- 关于多个ViewController之间进行数据传递的方法
- 在ViewController之间传递数据的方法【iOS】
- ViewController之间通信,传递参数
- 窗体之间如何传递数据
- 两个dialog之间如何传递数据
- Android Acitivity之间如何传递数据
- 如何在两个app 之间传递数据
- 如何在两个app 之间传递数据
- Acitivity 之间如何传递消息(数据)
- Acitivity之间如何传递消息(数据)
- 如何在两个Activity之间传递数据?
- iOS开发点滴 - 如何通过Segue写代码传递数据从一个ViewController到另一个ViewController(Swift代码)
- 在两个ViewController之间传输数据
- [Python]分享一些用来简化与SQL Server交互的函数
- javascript实现汉诺塔
- 设计模式
- 为什么会有缓冲区溢出攻击专栏
- 求数组最长的和为0的连续子数组
- ViewController之间如何传递数据
- 矩阵多维数组笔试题
- 如何在安卓app中使用FontAwesome图标
- Javascript Tips&Dialog
- 求矩阵中2×2子矩阵和的最大值
- 关于equals的一点小窍门
- 编程15年的技术大神之经验告白,样样实在
- linux下查看和添加PATH环境变量
- Chapter 2-02