在Custom UITableViewCell中的按钮上进行IBAction
使用iOS 5 ::我有一个场景,我必须使用自定义单元格创建一个tableView。 自定义单元格有一个名为TainingCellController的UITableViewCell子类和一个NIB文件TrainingCell.xib。 而父表放在一个名为TrainingController的UIViewController中。
现在我真的很想知道,CustomCell与文件所有者的关系,谁接收IBActions或IBOutlets ..
在Custom Cell NIB文件中,我可以更改文件所有者(默认设置为NSObject),也可以单击单元格本身并将其类从UITableViewCell更改为TrainingCellContrller。
这两个选项的适当类应该是什么? 应该在哪里定义IBActions和IBOutlets(TrainingCellController或TrainingController)?
什么如果我需要在TrainingCellController中定义“自定义单元格中的标签”的sockets,而在TrainingController中定义按钮动作?
您将UITableViewCell
的类设置为CustomCell
的类,您将在CustomCell
类中定义IBoutlet
并连接它们。
然后你将你的Xib的文件所有者设置为你的ViewController
,在你的ViewController
你将声明一个
IBOutlet CustomCell *yourClassLevelCell;
并将此IBOutlet
连接到Xib的UITableViewCell
现在,当您在ViewController's
方法cellForRowAtIndexPath
初始化单元格时,您将手动添加目标,如下所示:
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; cell = yourClassLevelCell; [cell.button addTarget:self ... ]; //button is IBOutlet in your CustomCell class which you will have //connected to your Button in xib }
尝试使用同一tableView类上的动态按钮
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"WorkRequestedCC" owner:self options:nil]; { for (id oneObject in nib) if ([oneObject isKindOfClass:[WorkRequestedCC class]]) cell = (WorkRequestedCC *)oneObject; } UILabel *Button=[[UIBUtton alloc]initWithFrame:CGRectMake(792, 13, 10, 15)]; [Button addTarget:self action:@selector(ButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:Button]; } -(void) ButtonClicked { //your code here } }