Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
出口无法连接到重复内容iOS 5_Ios_Uitableview - Fatal编程技术网

出口无法连接到重复内容iOS 5

出口无法连接到重复内容iOS 5,ios,uitableview,Ios,Uitableview,我是iOS新手,我正在使用uitableview单元格。我将按钮从对象检查器拖放到表格视图单元格。但当我制作它的IBoutlet时,它显示了一个错误,比如“Outlets不能连接到重复内容”,这意味着什么??我们无法在tableview单元格中输出UIbutton。请查看。我被困在里面了。我在做这样一个出口: @property (weak, nonatomic) IBOutlet UIButton *sa; 错误是“UIbutton的sa出口无效”您不能,因为按钮是单元格的一部分,并且在应用

我是iOS新手,我正在使用uitableview单元格。我将按钮从对象检查器拖放到表格视图单元格。但当我制作它的IBoutlet时,它显示了一个错误,比如“Outlets不能连接到重复内容”,这意味着什么??我们无法在tableview单元格中输出UIbutton。请查看。我被困在里面了。我在做这样一个出口:

@property (weak, nonatomic) IBOutlet UIButton *sa;

错误是“UIbutton的sa出口无效”

您不能,因为按钮是单元格的一部分,并且在应用程序运行时(可能)会有多个单元格实例

假设您可以建立连接,并且应用程序运行时有2个单元格(因此有2个按钮),Cocoa Touch无法决定哪个按钮将由该唯一插座引用(您也不能)


您可以对
UITableViewCell
进行子类化,要求表视图对其单元格使用您的子类,并将按钮连接到子类中的插座。在这种情况下,子类将有多个实例,每个实例将映射到一个单元格。

每当需要创建自定义tableView单元格时,建议将
UITableViewcell
子类化,并在该类中添加
UIButton
。在tableview委托方法中,您可以为每个单元格创建子类tableviewCell对象。

您的答案是,通过重用UITableViewCell中的对象

因此,除非为“UITableViewCell”创建类,否则无法创建它的出口

以下是您的参考资料

我希望它对你有用

您需要在
UITableViewCell
中拖放对象, 然后你必须给那个物体贴上标签

然后您可以将其与标签一起使用

首先为
UITableViewCell
指定一个标识符

下面是它的参考图片

然后给你的UI对象一个标签, 如此参考图像中所示

下面是我经常使用的示例代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


    UITableViewCell *Cell = [self.TableListRegion dequeueReusableCellWithIdentifier:@"List"];

    UIButton *objectOfButton = (UIButton *)[CellLast viewWithTag:200];

    [objectOfButton addTarget:self action:@selector(YourSelector:) forControlEvents:UIControlEventTouchUpInside];

    return Cell;

}
现在您可以通过以下方式接收按钮事件:

-(IBACTION)YourSelector:(id)sender{
// Your Button in Cell is selected.
// Do your stuff.

}

请随时询问您是否需要更多的帮助。

您可以为UITableViewCell创建子类,如下面的代码所示

创建名为CCell.h和CCell.m的新类

CCell.h中

@interface CCell : UITableViewCell
@property(nonatomic,strong)IBOutlet UILabel *lblTemp;
@property(nonatomic,strong)IBOutlet UIButton *btnTemp;
@end
#import "CCell.h"

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CCell *cell = (CCell *)[tblView dequeueReusableCellWithIdentifier:@"CCell"];
    cell.lblTemp.text = @"asd";

    cell.btnTemp.tag = indexPath.row;
    [cell.btnTemp addTarget:self action:@selector(btnTempClicked:) forControlEvents:UIControlEventTouchUpInside]
    return cell;
}

-(void)btnTempClicked:(UIButton *)btnTemp
{ 
     NSLog(@"Button Clicked Index = %d",btnTemp.tag);   
}
现在在您的视图控制器.h

@interface CCell : UITableViewCell
@property(nonatomic,strong)IBOutlet UILabel *lblTemp;
@property(nonatomic,strong)IBOutlet UIButton *btnTemp;
@end
#import "CCell.h"

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CCell *cell = (CCell *)[tblView dequeueReusableCellWithIdentifier:@"CCell"];
    cell.lblTemp.text = @"asd";

    cell.btnTemp.tag = indexPath.row;
    [cell.btnTemp addTarget:self action:@selector(btnTempClicked:) forControlEvents:UIControlEventTouchUpInside]
    return cell;
}

-(void)btnTempClicked:(UIButton *)btnTemp
{ 
     NSLog(@"Button Clicked Index = %d",btnTemp.tag);   
}
现在打开Xib>点击UITableviewCell>打开右侧导航器>打开名为(自定义类)的第三个选项卡>添加类=
CCell
>现在打开最后一个选项卡,您将获得
lblTemp
bind选项


这可能会对您有所帮助。

因为您要创建一个自定义单元格,所以需要为它创建一个类。您将为UITableViewCell创建子类

例如(使用问题中的属性):

  • 创建一个新的Objective-C类。将子类设置为:UITableViewCell 给它一个合适的名称(即单元格)

  • 在cell.h文件中:

  • 创建你的属性:@property(弱,非原子)ibuibutton*sa

    在cell.m文件中:

    @synthesize sa = _sa;
    
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    
    if (self) {
        // Initialization code
    }
    
    return self;
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    
    // Configure the view for the selected state
    }
    
    3.在Interface Builder中,返回到您创建的行。 单击“显示身份检查器”。 在“自定义类”下,将其设置为单元格文件

    4.按住“Option”键并单击“cell.h”文件。然后将按钮连接到IB插座

    5.在表视图控制器文件中:

    导入cell.h文件

    cellforrowatinexpath
    方法中:

    Cell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
    
    就这样


    到时候一切都会好起来的。希望这有帮助

    我已经在UIViewController中的UITableviewcell的标签的出口连接中完成,它应该更改为在UITableviewcell的子类中创建CustomCell,然后在此子类中的出口连接中完成,并清除错误。

    @Mishal Awan

    如果你真的想这样做,你的细胞数量是有限的。你可以:

  • ViewController
    更改为
    UITableViewController
    的子类,然后将
    表视图控制器
    文件拖到
    情节提要
  • 情节提要中
    表格视图的内容从
    动态原型更改为
    静态单元格

  • 然后,您可以向单元格中添加一些视图,例如一些标签

  • 标签
    连接到
    视图控制器
    并继续其余工作


  • 如果您想创建一个可重复使用的单元,请忘记我上面所说的内容。

    一个非常简单的解决方案是:

    只需使用table view单元格子类中的view或NSLayoutConstraint引用outlets,而不是table view controller,并使用CellForRowatineXpath方法或任何其他方法中的table view单元格对象进行访问


    注意:这是一个重复对象,所以您不能在“表视图控制器”中引用。

    您正在使用情节提要吗?是的,我正在处理情节提要检查此答案()这是swift的答案,但答案会帮助您。@Mishal,那么您做得不对。您需要为该对象指定标记。我会发布关于它的答案。呼???请您提供一些帮助或更新您的答案,但这是我想要的标签按钮??您可以为按钮做同样的事情。你的困难是什么?使用这个,UIButton*MapLegendSel=(UIButton*)[CellLast viewWithTag:8];[MapLegendSel addTarget:self action:@selector(enterinImprint:)for ControlEvents:UIControlEventTouchUpInside];让我们来看一看。@MishalAwan这是一个使用UITableViewCell子类的好方法,这样您就可以获得插座、设置标签和管理其他事情。如将标记设置为按钮如indexPath.row和在按钮选择器方法中,您可以识别单击了哪个按钮。请任何人帮助我查找错误,我正在使用FMDB将数据存储在UITableview中..节0的数量无效,我建议所有链接,但我仍有相同的错误。