我有一个View。在此 View 中,我有一个Container View。在ContainerView中,我有一个按钮。

当我触摸ContainerView的按钮时,我希望ContainerView隐藏。

我想做这样的事情:

class ContainerView: UIViewController {

    @IBAction func closeContainerViewButton(sender: AnyObject) {
        //I try this : self.hidden = false
        //or this :    self.setVisibility(self.INVISIBLE)
    }

}

知道怎么做吗?

最佳答案

有一些服务方法,但这是最简单的方法,但不是最漂亮的方法。您应该真正使用委托(delegate),但这是一种入门的方法。只需创建一个包含容器的类的全局变量(在本例中为startController)。然后从另一个 View Controller (MyViewInsideContainer)调用它,并告诉它隐藏您所在的 View 。我没有运行此代码,但它应该可以工作。

var startController = StartController()

class StartController:UIViewController {

    @IBOutlet var myViewInsideContainerView: UIView

    ....

    override func viewDidLoad() {
        super.viewDidLoad()
        startController = self
    }

    func hideContainerView(){
        self.myContainerView.hidden = true
    }
}

class MyViewInsideContainer:UIViewController {

    ...

    @IBAction func hideThisView(sender: AnyObject) {
        startController.hideContainerView()
    }

}

10-08 07:44