iOS 自定义Cell里面定义了个UIButton,怎么才能点击UIButton跳转页面
1个回答
展开全部
在cell.h声明一个protocol.
@proDelegate
-(v)someProMethod:(integer)cellRow;
@end
且声明属性
@property(xx,xx) id <proDelegate> customDelegate.
@property(xx,xx) interger cellRow;
button点击事件方法里
-(v)btnClicked:(id)sender
{
if(_customDelegate != nil && [_customDelegate responseToSelector:@selector(someProMethod:)])
{
[_customDelegate someProMethod:cellRow];
}
}
在加载tableview的viewController someVC中,
someVC.h
#import "xxxCell.h"
@class SomeVC:ViewController<proDelegate,tableViewDataSource,tableDelegate>
@implementation
-(cell *)cellForRow....
{
cell = ...
cell.dataSource = self;
cell.delegate = self;
//因为已经有delegate了,所以你定义的委托取其他名称,如customDelegate
cell.customDelegate = self;
cell.cellRow = indexPath.row;
}
//实现委托方法
-(v)someProMethod:cellRow
{
//跳转页面。需要可以在这个方法里传cell.row参数。
if(cellRow = 7)
{
//点击了第7行的按钮
}
}
@end
@proDelegate
-(v)someProMethod:(integer)cellRow;
@end
且声明属性
@property(xx,xx) id <proDelegate> customDelegate.
@property(xx,xx) interger cellRow;
button点击事件方法里
-(v)btnClicked:(id)sender
{
if(_customDelegate != nil && [_customDelegate responseToSelector:@selector(someProMethod:)])
{
[_customDelegate someProMethod:cellRow];
}
}
在加载tableview的viewController someVC中,
someVC.h
#import "xxxCell.h"
@class SomeVC:ViewController<proDelegate,tableViewDataSource,tableDelegate>
@implementation
-(cell *)cellForRow....
{
cell = ...
cell.dataSource = self;
cell.delegate = self;
//因为已经有delegate了,所以你定义的委托取其他名称,如customDelegate
cell.customDelegate = self;
cell.cellRow = indexPath.row;
}
//实现委托方法
-(v)someProMethod:cellRow
{
//跳转页面。需要可以在这个方法里传cell.row参数。
if(cellRow = 7)
{
//点击了第7行的按钮
}
}
@end
追问
我是个初学者
这样声明
@protocol proDelegate
-(void)someProMethod:(integer_t)cellRow;
@end
这里会报错
@property(nonatomic, weak) integer_t cellRow;
而且只有interger_t没有interger
追答
我只是简单举例,,不知道你这么菜。。。我都是都写得,没有经过编译器,所以肯定会有些地方报错啊。准确来说是NSInteger,我是简单说明而已,这是OC里最基本的数据类型。
一般基本数据类型的话,你声明属性用
@property(nonatomic,assign) type proName;
如果是对象的话,用
@property(nonatomic,strong)ClassName obj;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询