如何为另一文件中的子类添加IBOutlet并关联Storyboard?
解决方法:切换Assistant显示子类或代码关联IBOutlet
一、切换Assistant编辑器显示EmojiTableViewCell
- 在Storyboard中选中已关联
EmojiTableViewCell类的TableViewCell - 打开Assistant编辑器(点击右上角的双圆圈图标)
- 若Assistant仍显示
EmojiTableViewController,点击Assistant顶部的当前文件名(比如EmojiTableViewController.swift),在弹出的菜单里找到并选择EmojiTableViewCell.swift;或者点击顶部的「Automatic」下拉菜单,选择「Manual」,从项目文件列表中选中该子类文件。 - 此时就能正常拖动Storyboard中的Label到
EmojiTableViewCell的代码里完成IBOutlet关联。
二、纯代码关联(无需拖线)
如果不想依赖拖线操作,可以通过Tag实现关联:
- 在Storyboard中选中Label,在右侧Attributes Inspector里设置唯一的
Tag值(比如设为1001) - 修改
EmojiTableViewCell代码:
class EmojiTableViewCell: UITableViewCell { var nameLabel: UILabel! override func awakeFromNib() { super.awakeFromNib() // 通过Tag获取Label并赋值 guard let label = contentView.viewWithTag(1001) as? UILabel else { fatalError("未找到Tag为1001的Label") } nameLabel = label } }
之后在EmojiTableViewController的cellForRowAt方法中,就可以直接使用cell.nameLabel来设置内容了。
内容的提问来源于stack exchange,提问作者Rayce Miller
相关产品推荐
相关产品推荐

