2017-03-20 5 views
0

So habe ich eine App, wo Sie einen Standort aus einer Karte wählen sollen, aber die Art, wie ich es mache, ist durch ein Popup von einem View-Controller, der ein MapKit und eine Suchleiste hat eine Taste für den Benutzer Standortwahl, liegt das Problem auf, wenn ich mit der Ansicht fertig bin ich normalerweise denentfernen Navigationscontroller von Superview

self.view.removeFromSuperview() 

genannt, aber das Ding, das Entfernen wird, ist der View-Controller selbst, sondern il hinterlässt in der Navigationsleiste und es lässt mich nichts anderes tun (in der Tat, wenn ich zu einem anderen Tab gehe und zu demselben zurückkehre, kehrt der VC zurück).

die Art, wie ich die VC bin Instanziierung ist wie folgt:

func location() 
{ 
      let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

      let vc = mainStoryboard.instantiateViewController(withIdentifier: "mapV") as! UBICACIONViewController 

      let nav1 = UINavigationController() 
      nav1.viewControllers = [vc] 

      self.addChildViewController(nav1) 


      self.view.addSubview(nav1.view) 

      vc.delegate = self //this for the info that i'm getting afte(works fine) 

      nav1.didMove(toParentViewController: self) 
} 

Also hier bis funktioniert Finne aber, wenn der Benutzer te Taste auswählen, die „Mein Standort“, sagt und versucht, kehrt das Problem gibt.

in meinem VC-View-Controller ist es das, was, wenn Sie fertig passiert:

func Remove() 
{ 
     if let del = delegate { 
      del.dataChanged(str: Event.sharedInstance.Location!) 
     } 

     self.view.removeFromSuperview() //Problem Here :/ 
} 

Second VC

Return to First VC

Antwort

0

Eigentlich ein Kind View-Controller nav1 Sie hinzugefügt haben. Und nav1 hat eine Unteransicht nav1.view. Während des Entfernens entfernen Sie diese Ansicht aus der Superansicht, nicht den untergeordneten Ansichtscontroller.

Alle Möglichkeiten, von Ihnen Bildschirm kurz..ich verstehe, dass die Pop-up-Ansicht ist aus Vollbild dann warum nicht präsentieren Sie diese VC modal, oder drücken Sie es auf Navigation Stack.

+0

Ich habe darüber gelernt, das Problem ist, der Benutzer schreibt einige Sachen in der UIntextField und in der Datumsauswahl zwischen anderen Sachen, ich war mit segue und die Informationen verloren nach der Rückkehr, keine Ahnung? –

+0

der Inhalt von UItextfield ist in der 1. Ansicht controller..rite? dann sollten die Daten nicht gelöscht werden, es sei denn, Sie löschen es, während die Ansicht angezeigt wird. –

Verwandte Themen