2017-11-17 6 views
0

In meiner Anwendung habe ich komplexe Navigation.Navigieren zwischen Bildschirmen

Ich habe Einkaufsdetails .Wh ist View Controller von Tab bar Controller.

Wenn ich die alle Store Name von Einkaufs Details anzeigen Controller- .Es wählen wird View Controller auf eine Einkaufsliste Pop, die in Navigation Controller einbetten wird.

Wenn Sie die Schaltfläche Bearbeiten von EinkaufslisteView Controller .Es auf einem anderen View-Controller-Pop werden den Bildschirm hinzufügen. Es wird auch in Navigation Controller

Wenn ich von Add-Bildschirm speichern klicken einbetten .Es auf die Einkaufsliste View Controller

Wenn ich auf Fertig Schaltfläche aus der Einkaufsliste View Controller gehen. Ich muss zum Shopping Details View Controller des Tab Bar Controllers navigieren.

Bitte geben Sie mir eine Eingabe. Wie gehe ich zum Tab Bar Controller?

Ich habe unter Code versucht. Es ist navigieren zu StoreDetails Ansicht Controller.Not Anzeigen Tab Bar Artikel

let storeDetails = self.storyboard?.instantiateViewController(withIdentifier: "StoreDetailsController") as! StoreDetailsController 
     storeDetails.managedContext = managedContext 
     storeDetails.coreData = coreData 
     storeDetails.back = true 
self.navigationController?.pushViewController(storeDetails, animated: false) 

Antwort

0

Da ist es miteinander verbunden. pushToViewController oder popTOViewController oder entlassen ist nicht gearbeitet. also habe ich mich abgewickelt.

StoreDetailsController: I unten Code haben in StoreDetailsController

@IBAction func unwindToVC1(segue:UIStoryboardSegue) { 
     print("Test") 
    } 

In meiner ShoppingListViewController ich bar Taste Fertig entspannen haben zu verlassen.

@IBAction func done(_ sender: UIBarButtonItem) { 
performSegue(withIdentifier: "unwindSegueToVC1", sender: self) 
     } 

Sie den untenstehenden Link für Abroll

folgen

https://medium.com/@mimicatcodes/create-unwind-segues-in-swift-3-8793f7d23c6f

0

Wenn Sie self.navigationController?.dismiss(animated: true) tun sollten Sie bei der Viewcontroller zurück, die in der Navigationssteuerung kurz vor dem ersten eingebettet ist, die ich glaube, Shipping Details ist (die eine, wo Sie "einen beliebigen Store-Namen auswählen").

+0

Ja, ich habe ausprobiert. Es funktioniert nicht, da es vom Bildschirm "Hinzufügen" – BoR

+0

durchlaufen wird Können wir die Tab-Leiste speziell durchlaufen – BoR

+0

Ich bin mir nicht sicher, was Sie mit "traversiert" meinen. Unabhängig davon sollten Sie versuchen, in die Ansichtshierarchie zurückzukehren, anstatt zu versuchen, die ursprüngliche Ansicht erneut zu laden. Versuchen Sie, den View-Controller, den Sie benötigen, zu "entlassen" (zurück), statt "instanziateViewController" und "pushViewController". –

0

Von dem, was ich sagen kann, versuchen Sie, den Controller, von dem Sie stammten, auf den Stapel zu schieben, anstatt ihn wieder zu öffnen. Es ist ein wenig verwirrend, das ganze Bild von deinem Beitrag zu bekommen. Kannst du diesen Teil des Storyboards als Screenshot verwenden? Können Sie zumindest ein Diagramm bereitstellen, wenn Sie das Storyboard nicht teilen möchten? Vielen Dank.

EDIT:

Denn für Ihren Controller poping zurück Sie so etwas wie diese verwenden:

for controller in (self.navigationController?.viewControllers)! { 

    if let vc = controller as? StoreDetailsController { 

    self.navigationController?.popToViewController(vc, animated: true) 
    } 
} 

Aber ich kann wirklich nicht sagen, wenn Sie zumindest das Diagramm nicht teilen, wie Sie Ihre Controller sind angeordnet und wo sind sie eingebettet.

+0

Danke. Ich habe festgestellt, dass ich direkt zum View-Controller übergehe. Statt seines Navigation Controllers. Nun, ich bin konfrontiert, wenn ich zweimal die Taste "Fertig" drücke.Der Bildschirm vorhanden, um Root-Controller. self.dismiss (animiert: true, completion: nil) – BoR

+0

Es hört sich so an, als hättest du die Controller in einem Kreis mit Segue-Verbindungen verbunden. Wie bereits erwähnt, teilen Sie uns ein grobes Diagramm, wie Ihre Controller verbunden sind, und wir können Ihnen besser helfen. –

Verwandte Themen