Cell在许多不同的ViewControllers中

时间:2018-02-25 22:35:03

标签: swift alert uiactivityviewcontroller parentviewcontroller

我有一个单元格,我在许多不同的vc中使用,因为我的应用程序分为不同的类别,但都使用相同的单元格。

现在我有一个按钮,可以触发事件通过其他应用程序(如whastapp或facebook)分享。 问题在于,根据您所属的类别,您将拥有一个不同的视图控制器,它将显示该功能。 我可以在一个单元格中使用一个而不是10个不同的vc。

我使用扩展来获取parentviewController

extension UIView {
var parentViewController: HomeViewController? {
    var parentResponder: UIResponder? = self
    while parentResponder != nil {
        parentResponder = parentResponder!.next
        if parentResponder is UIViewController {
            return parentResponder as! HomeViewController!
        }
    }
    return nil
} 

这显然只适用于Home vc。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

您可以使用协议在视图控制器中处理按钮操作:

extension HomeViewController: ShareEventDelegate {
    func didShareButtonSelected() {
        // handle your action here
    }
}

在您的自定义单元格中:

cell.shareDelegate = self

然后让ViewControllers符合ShareEventDelegate,例如:

ride.in

在cellForRow中:

ufolist = ufo.split(',')