标签出口无效

Posted

技术标签:

【中文标题】标签出口无效【英文标题】:The label outlet is invalid 【发布时间】:2015-05-12 18:20:48 【问题描述】:

我想声明表格原型单元格中的 4 个标签,以便我可以将 Parse 中的所有数据检索到标签中。正如你在图片中看到的,有 4 个标签,我希望每个标签都有自己的插座,但它显示了无效的插座错误。

我正在使用 Parse 来执行此操作,因此原型单元格的超类将是 PFTableViewCell。

class TimetableViewController: PFQueryTableViewController, UITextFieldDelegate

    @IBOutlet weak var lblTime: UILabel!

我得到的错误会是这样的......

从 TimetableViewController 到 UILabel 的 lblTime 出口是 无效的。插座不能连接到重复的内容。

那么,我应该怎么做才能避免这个问题的存在呢?

【问题讨论】:

有两种解决方案...,第一种使用自定义类的单元格,另一种是使用标签属性 @Bhavin 是的,我确实使用了自定义类,但是我为 UITableViewCell 创建了一个新文件,即使标签出口在那里,我仍然无法访问标签。跨度> 【参考方案1】:

您需要创建UITableViewCell 的自定义子类并在那里声明您的IBOutlets。然后在整个主视图控制器中使用该子类而不是通用的 UITableViewCell

重申一下:tableview 单元格中的元素属于该单元格,而不是包含所有内容的视图控制器。

编辑: 在您的视图控制器中,您将遵守 UITableView 的委托和数据源协议(并实现与您要完成的任务相关的任何方法)。您将在以下数据源方法中处理填充(初始)单元格数据:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier", forIndexPath: indexPath) as! TimetableViewCell
    // TODO: setup cell data here
    return cell

【讨论】:

假设我得到了一个来自PFQueryTableViewController 的子类TimeTableViewController,然后我打开另一个表格单元格文件,即来自UITableViewCell 的TimetableViewCell sub,然后原型单元格绑定到TimetableViewCell 和整个故事板绑定到TimeTableViewController 对吗? 正确。在您的视图控制器中,您将自己声明 tableview 的数据源和委托(很可能)并在这些方法中处理单元格配置。【参考方案2】:

细胞是动态生成的。控制器和单元之间没有真正的连接,因此您无法将单元中的某些东西连接到控制器。具体来说,通常您有多个相同类型的单元格(“重复内容”),并且您不能将所有标签都连接到父控制器中的一个插座。

通常,您要做的是为单元格声明一个类,例如

class MyCell : UITableCell 

    @IBOutlet weak var lblTime: UILabel!


并添加插座。

【讨论】:

所以我需要两个文件,即故事板和原型单元的视图控制器和视图单元? 你不需要两个文件但你需要两个类 像两个班怎么说?在一个文件中打开两个类? 我说的是代码。您需要在代码中使用两个类。故事板不会改变。 是的,我已经添加了两个类,现在我可以添加标签的出口,但是在函数中,我仍然无法访问tableView函数中的标签......我'现在在一个视图控制器中有两个类...【参考方案3】:

对于那些在您从视图控制器中删除 IBOutlet 代码后仍然存在的错误,您仍然需要右键单击它并删除旧连接。删除后错误信息就会消失。

这清除了我所有的错误。希望也能帮助其他人。

【讨论】:

以上是关于标签出口无效的主要内容,如果未能解决你的问题,请参考以下文章

无法制作标签的出口

无法在情节提要中将按钮\标签与变量\出口连接起来

Xcode - 标签栏项目视图中的标签出口为零

在 awakeFromNib 中获取出口尺寸

mangle 打标签冲突

出口退税申报系统启动提示“数据库无效:SQL logic error or missing database”处理办法吗?