呈现从 UITableViewCell 内部启动的 UIActivityViewController
Posted
技术标签:
【中文标题】呈现从 UITableViewCell 内部启动的 UIActivityViewController【英文标题】:Presenting UIActivityViewController initiating from inside UITableViewCell 【发布时间】:2015-06-22 14:37:10 【问题描述】:下面的代码工作正常,当放入PostsVC
(Mian View Controller)时显示UIActivityViewController
,但给出cell没有名为'presentViewController'的成员错误当放置在同一 PostsVC 视图控制器上的 UITableViewCell 内的 UIButton 的点击操作时。
如何在最后一行代码中引用 PostsVC 来呈现它?
let appAddress = "https://itunes.apple.com/app/id978654?ls=1&mt=8"
let shareText = "Share our app "
let activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [shareText, appAddress], applicationActivities: nil)
self.presentViewController(activityViewController, animated: true, completion: nil)
【问题讨论】:
【参考方案1】:在单元子类中添加对视图控制器的弱引用。在 cellForRowAtIndexPath 中设置:
cell.viewController = self
然后调用 cell.viewController 上的 presentViewController 方法,而不是单元格本身。
【讨论】:
在线错误cell.viewController = self
'cell' 没有名为'viewController' 的成员
@Kashif 是的,你必须在你的单元子类中添加一个属性
对于其他人阅读,您必须在您的单元格子类中执行weak var parentViewController = UIViewController()
以上是关于呈现从 UITableViewCell 内部启动的 UIActivityViewController的主要内容,如果未能解决你的问题,请参考以下文章
从 UITableViewCell 呈现 UIViewController:addChildViewController 无法识别的选择器发送到实例
在呈现的视图控制器上的 UITableViewCell 中呈现 UIAlertController