使用委托将数据从Collection View Controller传递到View Controller
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用委托将数据从Collection View Controller传递到View Controller相关的知识,希望对你有一定的参考价值。
在按下按钮时,我正在尝试将数据从Collection View Controller发送到我的View Controller。这是我到目前为止:
CollectionViewController.h
#import <UIKit/UIKit.h>
@class CollectionViewController;
@protocol CollectionViewDelegate <NSObject>
-(void) sendTest;
@end
@interface CollectionViewController : UICollectionViewController
@property (nonatomic, weak) id<CollectionViewDelegate> deligate;
@end
CollectionViewController.m
-(void) viewDidLoad {
[super viewDidLoad];
}
...
NSLog(@"check");
[self.deligate sendTest];
NSLog(@"called");
FooViewController.m
#import "CollectionViewController.h"
@interface FooViewController () <CollectionViewDelegate> {}
@end
@implementation FooViewController
- (void)viewDidLoad {
[super viewDidLoad];
CollectionViewController *controler = [[CollectionViewController alloc] init];
controler.deligate = self;
}
- (void) sendTest {
NSLog(@"Delegates are great!");
}
不幸的是,当我打电话给[self.deligate sendTest];
时没有任何反应。我知道它被称为,因为我得到了check
,called
日志。
答案
主要的错误是你自己创造了一个CollectionViewController
,但你不应该。您想要的CollectionViewController由Storyboard自动实例化。如何找到这个视图控制器?
1 - 在Foot ViewController中的segue期间捕获它:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
CollectionViewController *collectionViewController =(CollectionViewController *) segue.destinationViewController;
collectionViewController.deligate = self;
}
2 - 在FooViewController中的子视图控制器中找到它
self.childViewControllers
它对你有帮助吗?
以上是关于使用委托将数据从Collection View Controller传递到View Controller的主要内容,如果未能解决你的问题,请参考以下文章
将 UIImage 分配给 Collection View Cell
从 Collection View Xcode 中删除 Collection View Cell