2017-05-22 4 views
0

Ich habe eine ViewController, die Add-Taste hat, die SideBarVC auf der rechten Seite des Bildschirms öffnet. Wenn ich wieder auf meinen Hauptbildschirm von ViewController klicke, sollte er mein SideBarVC schließen.Tippen Sie auf ParentViewController schließt die ChildViewController

Ich versuchte

@IBAction func click_leistung(_ sender: UIButton) { 

    leistungList = self.storyboard?.instantiateViewController(withIdentifier: "leistungVC") as! leistungVC 
    leistungList.view.backgroundColor = .clear 
    leistungList.modalPresentationStyle = .overCurrentContext 
     self.present(leistungList, animated: true, completion: nil) 

} 
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 


    self.myscrollView.endEditing(false) 
    leistungList.removeFromParentViewController() 
    leistungList = nil 
} 
+0

In Ihrem Code zu verwalten sind Sie einen neuen Controller instanziieren und dann von seiner Mutter entfernen, das glaube ich nicht, das ist genau, was Sie möchte tun. Sie sollten wahrscheinlich den Teil des Codes teilen, wo Sie das "SideBarVC" öffnen, so dass wir verstehen, wie es an erster Stelle hinzugefügt wird. – jcaron

Antwort

0

Zunächst einmal - Sie versuchen, frisch VC zu entfernen, aber Sie sollten Zeiger auf alte zu speichern, es zu entfernen. Erstellen Sie var, um den Zeiger auf diese LeistungList zu speichern, und entfernen Sie sie dann aus dem übergeordneten Element.

var storedController: UIViewController? 
func show() { 
    // ... 
    storedController = presentedController 
} 
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

    // Das keyboard ist weg 
    self.myscrollView.endEditing(false) 
    storedController.removeFromParentViewController() 
    storedController = nil 
} 

PS: lesen Sie diesen Artikel zu verstehen, wie Kind-Controller https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html

+0

Ich habe das versucht, es funktioniert nicht. Flow erreicht keine BerührungenBegan(). –

Verwandte Themen