gpt4 book ai didi

iphone - 在主视图 Controller 的自定义单元格内使用来自 UIButton 的 IBAction

转载 作者:太空狗 更新时间:2023-10-30 03:36:43 26 4
gpt4 key购买 nike

我创建了一个自定义单元格,它有自己的 .m、.h 和 .xib 文件。在单元格中,我有一个添加到 IB 中的 xib 的 UIButton。

我可以从这个自定义单元格的 .m 中的 UIButton 接收 IBAction,但实际上,我想将该按钮按下转发到托管表格(以及自定义单元格)的主视图 .m 并使用那里的一个 Action 。

在过去的 4 个小时里,我尝试了各种方法来完成这项工作——我应该使用 NSNotificationCenter 吗? (我已经尝试了很多通知,但无法让它工作,不确定我是否应该坚持)

最佳答案

你需要在cell的.h文件中使用delegate。像这样声明委托(delegate)

@class MyCustomCell;
@protocol MyCustomCellDelegate
- (void) customCell:(MyCustomCell *)cell button1Pressed:(UIButton *)btn;
@end

然后声明字段和属性

@interface MyCustomCell:UItableViewCell {
id<MyCustomCellDelegate> delegate;
}

@property (nonatomic, assign) id<MyCustomCellDelegate> delegate;

@end

在 .m 文件中

@synthesize delegate;

在按钮方法中

- (void) buttonPressed {
if (delegate && [delegate respondToSelector:@selector(customCell: button1Pressed:)]) {
[delegate customCell:self button1Pressed:button];
}
}

你的 View Controller 必须像这样采用这个协议(protocol)

.h文件

#import "MyCustomCell.h"

@interface MyViewController:UIViewController <MyCustomCellDelegate>
.....
.....
@end

在 cellForRow 的 .m 文件中:您需要将属性委托(delegate)添加到单元格的方法

cell.delegate = self;

最后你实现协议(protocol)中的方法

- (void) customCell:(MyCustomCell *)cell button1Pressed:(UIButton *)btn {

}

对不起我的英语和代码。在没有 XCODE 的情况下从我的 PC 中写入

关于iphone - 在主视图 Controller 的自定义单元格内使用来自 UIButton 的 IBAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556148/

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