para ocultar como app aplicaciones aplicacion ios swift uiview uibutton uicontainerview

ios - como - Ocultar un contenedor de vista con un botón en ViewContainer



como ocultar aplicaciones en motorola (2)

Creo que una solución más limpia es usar delegación:

en el ParentViewController

class ParentViewController: UIViewController ,ContainerDelegateProtocol { @IBOutlet weak var containerView: UIView! override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { //check here for the right segue by name (segue.destinationViewController as ContainerViewController).delegate = self; } func Close() { containerView.hidden = true; }

en ContainerViewController

protocol ContainerDelegateProtocol { func Close() } class ContainerViewController: UIViewController { var delegate:AddTaskDelegateProtocol? @IBAction func Close(sender: AnyObject) { //connect this to the button delegate?.CloseThisShit() }

Tengo una View . En esta vista, tengo una Container View . Y en el ContainerView tengo un botón.

Cuando toco el botón de ContainerView, quiero que el ContainerView se oculte.

Quiero hacer algo como eso :

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

¿Alguna idea de cómo hacerlo?


Hay formas de serval, pero esta es la más fácil, aunque no la más bonita. Realmente debería usar delegados, pero esta es una forma estrafalaria de comenzar. Simplemente cree una variable global de la clase que contiene el contenedor (startController en este caso). Luego llámelo desde su otro controlador de vista (MyViewInsideContainer) y dígale que oculte la vista en la que se encuentra. No he ejecutado este código, pero debería funcionar.

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() } }