簡體   English   中英

如何將UIViewController的視圖作為子視圖添加到UITableViewCell?

[英]How to add a UIViewController's view as a subview to a UITableViewCell?

我有一個可重用的UIViewController子類(一個音頻/視頻播放器,我們稱之為MediaController )。 當我將其作為子視圖控制器添加到其他視圖控制器時,它可以正常工作,但是我的要求是也將其添加到UITableViewCell子類中。 由於-addChildViewController:UIViewController的方法,因此我將視圖添加到像這樣的單元格中:

self.mediaController.view.frame = self.containerView.bounds;
[self.containerView addSubview:self.mediaController.view];

containerView只是單元格視圖層次結構中的占位符視圖)。

但是,這會導致問題,首先是因為MediaController在-viewWillAppear-viewWillDisappear具有某些邏輯(當然永遠不會調用它),其次是因為當MediaController的視圖添加到單元中時,自動布局似乎無法正常工作。

您是否認為我還有其他選擇(也許使用擁有該單元格的UITableViewController作為容器?)還是無法使用該MediaController?

這個問題與我搜索時最相關,但仍然不能解決我的問題。

謝謝!

如果可能的話,我可能會嘗試做的一件事就是讓UITableViewController具有靜態單元格。

如果您使用的是UIStoryboard ,請拖放UITableViewController並將content更改為“ Static Cells然后在該單元格中讓MediaController將“ Container View拖放到該單元格中。 然后將其從“ Container View拖放到MediaController並設置嵌入segue。

顯示時應調用適當的viewLifecycle方法。

這是UIStoryboard設置 在此處輸入圖片說明

來自aahrens其他答案對我不起作用,因為我的表格視圖很復雜,而且從一開始就沒有使用情節提要

我最終要做的是將對UIViewController的弱引用傳遞給該單元格,以便可以對-addChildViewController:進行“常規”調用。 丑陋,但工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM