我有一个viewcontroller,它由一个集合视图组成。此集合视图具有UIbutton块。我想在单击此按钮并导入一些数据时导航到另一个视图控制器。注意它是一个UIButton块 非常感谢任何帮助。
答案 0 :(得分:0)
首先,确保由集合视图组成的viewcontroller中嵌入了NavigationController。
其次,您有两种方法可以将一些数据传递给另一个视图控制器:
第一种方式:
设置按钮选择器
[button addTarget:select action:@selector(buttonTouched:)
forControlEvents:UIControlEventTouchUpInside];
然后让我们将选择器实现为
- (void)buttonTouched:(id)sender {
// Find tableViewCell
UIView *view = field;
while (view && ![view isKindOfClass:[UICollectionViewCell class]]){
view = view.superview;
}
UICollectionViewCell *cell = (UICollectionViewCell *)view;
NSIndexPath *indexPath = [self.collectionView indexPathForCell:cell];
// TODO: get data for above indexPath
UIViewController *nextViewControler = [[UIViewController alloc] init];
[self.navigationController pushViewController:nextViewControler animated:YES];
}
第二种方式(用于自定义UICollectionViewCell):
您为该按钮连接IBAction,然后定义一个像单元格属性的块(注意:该块的属性应该是复制)
例如:@property(copy, nonatomic) dispatch_block_t buttonTouchedBlock;
然后让我们用cellForItemAtIndexPath
方法实现它。
__弱类型(自我)弱自我=自我; cell.buttonTouchedBlock = ^ { [weakSelf buttonTouchedAt:indexPath]; }