标签:ios app source code delegate 数据
在ViewController之间传递数据的方法有不少,博主这里总结两种最常用的方法给大家:
我们假设有 视图控制器A 和 视图控制器B,其中我们设视图控制器B 是由 视图控制器A通过Navigation controller Push过去的,也就是说视图控制器B是视图控制器A的子视图控制器。
下面我们就分别通过 A->B 和 B->A传递数据说明两种在视图控制器之间传递数据的方法。
1.由视图控制器A传递数据给视图控制器B
@property (strong, nonatomic) NSArray *showArray;
- (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做一个监听器。具体方法如下:
@class LoadViewController; @protocol CheckViewDelegate <NSObject> -(void)LoadDataViewController:(CheckViewController *)controller didFinishLoadData:(NSMutableArray *)loadedArray; @end
@property (nonatomic, weak) id <LoadViewDelegate> delegate;
[self.delegate LoadDataViewController:self didFinishLoadData:testArray];
CheckVC.delegate = self;
-(void)LoadDataViewController:(CheckViewController *)controller didFinishLoadData:(NSMutableArray *)loadedArray{ self.currentArray = loadedArray; }
这样就完成了B->A的数据传递。相对复杂一些。
标签:ios app source code delegate 数据
原文地址:http://blog.csdn.net/superturbofsi/article/details/42569155