【问题标题】:Nib loaded, outlets missing笔尖已装好,插座不见了
【发布时间】:2015-04-12 02:39:25
【问题描述】:

在我的项目中,一些UITableViewCell 有一些复杂的子视图结构和手势动作,所以我决定使用一层“单元控制器”对象(NSObject 的子类)来管理单元和单元层手势,如以及在 xib 文件中绘制单元格。

现在,当我从以单元控制器为所有者的 nib 加载单元时(xib 已正确设置),我发现插座未连接。为什么?

或者,当加载 nib 并设置 outlets 时,是否会在所有者对象上调用任何方法?

笔尖是这样加载的:

cell = [[NSBundle mainBundle] loadNibNamed:@"HistoryCellActive"
                                     owner:self
                                   options:nil][0];

【问题讨论】:

  • 您能告诉我们您是如何加载 nib 文件的吗?
  • @ozgur -[NSBundle loadNibNamed:owner:options:] 作为编辑。

标签: ios objective-c uitableview xib


【解决方案1】:

nib 加载基础架构向从 nib 存档重新创建的每个对象发送 awakeFromNib 消息。当一个对象收到一个 awakeFromNib 消息时,保证它的所有出口和动作连接都已经建立。

您可以尝试覆盖 HistoryCellActive 实现文件中的 awakeFromNib 方法并在此处设置断点。如果单元格 xib 文件正确,则调试器将在此断点处停止,您可以检查所有单元格的出口。如果不是,则必须检查 xib 是否有错误。

别忘了调用 [super awakeFromNib];在 awakeFromNib 实现开始时。

【讨论】:

  • 没有多大帮助:HistoryCellActive 只是一个 UITableViewCell,所以我没有可以断点的地方。
  • 如果它只是一个 UITableViewCell 你在说什么网点?
  • 如果你想将自定义的 outlet 附加到 UITableViewCell 你应该创建一个 UITableViewCell 的子类并在这里定义 outlet。
  • 我有一个拥有 xib 的单元控制器对象,而缺少的出口指向它。
  • 如果您有“单元控制器对象”的类实现,您可以在此处覆盖 awakeFromNib。
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 2011-01-29
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 2015-04-26
相关资源
最近更新 更多