我环顾四周,有很多关于如何做到这一点的例子,但我仍然没有得到它。
我有一个列表,我列出了日记帐分录,我想要显示标题,创建日期和其他一些东西。我想使用XIB来设计一个单元格,因此UX设计师可以修改它并按像素推动它。
所以,这就是我设置xib的方式:
然后我创建了一个这个xib单元指向的类,并为其添加了两个属性:
@property (atomic, weak) IBOutlet UILabel* titleLabel;
@property (atomic, weak) IBOutlet UILabel* dateLabel;
我希望能够在创建这些单元格时设置它们。
在包含列表表的视图中,我执行此操作: 在 - (void)viewDidLoad
[self.tableView registerNib:[UINib nibWithNibName:@"DreamListTableViewCell" bundle:nil] forCellReuseIdentifier:@"DreamListCell"];
并且 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath我这样做:
static NSString *MyIdentifier = @"DreamListCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier forIndexPath:indexPath];
问题是,如果我在单元格xib中设置了IBOutlets,应用程序会崩溃,因为我认为所有者在初始化时确实是零,但我实际上并不确定。如果我无法在界面构建器中连接它们,我怎么能修改这两个属性?我该怎么办?
另外,我没有使用故事板。我使用此作为指南:Chapter 21. Table Views and Collection Views
我为一些重复的问题道歉,我只是没有得到它。 HALP!
编辑: 插座截图:
编辑#2: 如果我删除单元格xib中的插座连接,我会看到:
答案 0 :(得分:6)
不要使用File的所有者来设置与IBOutlets的关系。更改单元格的类并使用它(在某些Xcode版本上建立连接可能很棘手,但是可行)。