gpt4 book ai didi

ios - 通过单击自定义单元格中的按钮转到另一个 View

转载 作者:行者123 更新时间:2023-11-28 18:56:57 25 4
gpt4 key购买 nike

我将自定义单元格 (XIB) 创建为 UICollectionViewCell 的子类,该单元格中有一个按钮。当我单击一个按钮时,我想转到另一个包含一些数据的 View ,并且也可以通过单击一个按钮返回到原始 View 。我搜索了它并找到了类似“segue”或“modal”的东西,但我最初无法从我的自定义单元格中进行搜索。

有什么办法吗?任何帮助将不胜感激。

最佳答案

因此,由于 UICollectionView 看起来与 UITableView 的工作方式相同,所以您要做的是创建一个 UICollectionViewCell 的子类,其中包含一个协议(protocol) 以将操作(例如按下按钮)发送到 View Controller 从不同的角度。在这种情况下,不同的 View 是 UICollectionViewCell。

向 UICollectionViewCell 添加协议(protocol)

添加一个名为 UICustomCollectionViewCell 的新 Cocoa Touch 类,它是 UICollectionViewCell 的子类。并包含界面生成器文件

头文件 UICustomCollectionViewCell.h

@protocol UICustomCollectionViewCellDelegate;

@interface UICustomCollectionViewCell : UICollectionViewCell

@property ( nonatomic, retain) IBOutlet UIButton *button;
- (IBAction)pressButton:(id)sender;

@property ( assign) id< UICustomCollectionViewCellDelegate> delegate;

@end

@protocol UICustomCollectionViewCellDelegate <NSObject>

@optional
- (void)customCollectionViewCell:(UICustomCollectionViewCell *)cell pressedButton:(UIButton *)button;

@end

实现文件UICustomCollectionViewCell.m

@implementation UICustomCollectionViewCell
@synthesize delegate;

- (IBAction)pressButton:(id)sender {
if ([delegate respondsToSelector: @selector( customCollectionViewCell:pressedButton:)])
[delegate customCollectionViewCell: self pressedButton: sender];

}

@end

xib 文件 UICustomCollectionViewCell.xib

确保 UICustomCollectionViewCell 的连接已连接到 Connections Inspector 的按钮:

  1. 按钮
  2. -按下按钮:

example

最后,在你的项目中使用这个类

导入类和委托(delegate):

#import "UICustomCollectionViewCell.h"

@interface ViewController () < UICustomCollectionViewCellDelegate>

@end

在下面的代码中,您将使用 UICustomCollectionViewCell 类而不是 UICollectionViewCell:

UICustomCollectionViewCell *cell;

...
[cell setDelegate: self];
...

return cell;

现在是按下按钮时调用的操作或方法:

- (void)customCollectionViewCell:(UICustomCollectionViewCell *)cell pressedButton:(UIButton *)button {
//action will be here when the button is pressed

}

如果你想找出这个单元格来自哪个索引路径:

[collectionView indexPathForCell: cell];

关于ios - 通过单击自定义单元格中的按钮转到另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com