【问题标题】:Set cell owner when loaded from Xib从 Xib 加载时设置单元所有者
【发布时间】:2023-03-07 16:00:02
【问题描述】:

我创建了一个名为 CustomCell 的自定义表格视图单元格类,它继承自 UITableViewCell

我还为名为@9​​87654323@ 的单元格创建了xib 文件。 在 xib 文件中,我将自定义类指定为 CustomCell, 并将文件的所有者设置为CustomCell class。

现在,我已经连接了一些按钮 touchUpInside 以在文件所有者 CustomCell 中处理。

我在表格视图控制器中使用以下代码加载单元格:

NSArray *topLevelObjects = [[NSBundle mainBundle] 
  loadNibNamed:@"CustomCell" owner:nil options:nil];

cell = [topLevelObjects objectAtIndex: 0];

如您所见,加载的单元格没有所有者(owner:nil 参数), 问题是我需要将所有者设置为单元格本身。

如何明确设置cell 的所有者?

是否有其他方法可以加载 xib 并使该单元实例成为其自身的所有者?

【问题讨论】:

  • 我只是在猜测,但是设置owner:self 会起作用吗?

标签: objective-c xcode cocoa-touch uitableview


【解决方案1】:

如果您的单元格和按钮都在同一个笔尖中,您可以在笔尖内部建立它们之间的连接。

“文件所有者”代理只是用来帮助您连接到不在 nib 中的对象。 “文件的所有者”只是运行时此笔尖所有者的代理。

但是由于您要连接的两个对象都已经在笔尖内,您可以直接进行连接。

【讨论】:

  • 我自己解决了这个问题,方法是从 xib 中删除 File 的所有者,并且在创建新连接时,它们以我的 CustomCell 类为目标。我很好奇,是否有可能将某些操作和/或出口定位到我的 CustomClass,而其他一些操作和/或出口定位到文件所有者?这是如何在 XCode 中完成的?对不起,如果这是一个愚蠢的问题,我是一个新手,一些简单的任务在 XCode 中并不那么明显。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
相关资源
最近更新 更多