我正在尝试在正在使用的应用程序中使用情节提要。在该应用程序中,有“ 列表”和“ 用户”,每个列表和用户都包含其他列表的集合(列表的成员,用户拥有的列表)。因此,我有ListCell
和UserCell
类。目标是使它们在整个应用程序中可重用(即,在我的任何tableview控制器中)。
那就是我遇到问题的地方。
如何在情节提要中创建可在任何视图控制器中重复使用的自定义tableview单元?
这是到目前为止我尝试过的具体操作。
在Controller#1中,添加了一个原型单元,将类设置为我的
UITableViewCell
子类,设置了重用ID,添加了标签并将其连接到该类的插座。在Controller#2中,添加了一个空的原型单元,将其设置为相同的类,并像以前一样重用ID。当它运行时,当控制器2中显示单元格时,标签将永远不会显示。在控制器1中正常工作。在不同的NIB中设计每种电池类型,并连接到适当的电池类别。在情节提要中,添加了一个空的原型单元,并设置其类和重用ID以引用我的单元类。在控制器的
viewDidLoad
方法中,注册那些NIB文件以获取重用ID。如图所示,两个控制器中的单元都像原型一样是空的。保留两个控制器中的原型为空,并设置类,并将id重用到我的单元格类中。完全用代码构造单元格的UI。单元在所有控制器中都能正常工作。
在第二种情况下,我怀疑原型始终会覆盖NIB,并且如果我杀死原型单元,则可以为重用ID注册我的NIB。但是,那时我将无法设置从单元到其他框架的序列,这实际上就是使用情节提要的全部要点。
归根结底,我想要两件事:在情节提要中连接基于tableview的流,并在视觉上而不是在代码中定义单元格布局。到目前为止,我还看不到如何做到这两个。