2016-08-21 104 views
1

我有问题,这里询问UITableViewCell outside of UITableView但除了'这不是一个好主意',没有正确的答案。在UITableView外显示细胞

我想在tableView外部加载单元格的contentView(示例情况 - 当用户单击单元格时,他将导航到新表格视图,其中该单元格用作headerView的一部分)。

在主题提出的解决方案,我提供的链接是:

我所做的是从笔尖加载的细胞,设置它,然后加入 单元格的内容查看我的新推视图。这实现了 大部分相同的效果。

我试过,当我尝试调用内细胞(例如按钮),我收到坠毁对象为nil,任何物体通过MyUITableViewCell()MyUITableViewCell(style:, reuseIdentifier: nil)装入电池,但每次所以这意味着小区不装从笔尖。

我不能通过MyUITableViewCell(nib: nib, bundle: nil)来初始化单元格,因为它没有这样的初始化程序。

那么如何在我的任何其他视图中加载单元格的内容?我怎样才能'设置'?

回答

4

要直接从笔尖直接加载单元格而不使用表格视图,则需要从主包中加载它。

的Objective-C:

CustomClass *cell = (CustomClass *)[[[NSBundle mainBundle] loadNibNamed:@"nibName" owner:self options:nil] firstObject] 

斯威夫特:

let cell = NSBundle.mainBundle().loadNibNamed("nibName", owner: self, options: nil).first as! CustomClass 

一旦加载它,你仍然需要做您的设置,并设置单元格的框架,并把它添加到上海华。然后,您可以像使用其他视图一样使用此视图。

init方法不起作用的原因是因为视图从未获取从nib初始化的任何IBOutlets,所以您的单元的所有单元属性都为零。