2016-08-21 154 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,所以您的單元的所有單元屬性都爲零。