Ich habe einen View-Controller A, der auf dem Navigations-Stack ist. A modal präsentiert einen anderen Controller B, die wiederum modal einen anderen Controller C präsentiertWie zwei Modal View-Controller auf einmal zu entlassen?
Wenn der Benutzer eine Schaltfläche in CI trifft wollen beide C und B entlassen A. zurückzukehren Wie kann ich beide B und C entlassen auf einmal?
Der folgende Code funktioniert, aber ist es sicher, dies zu tun?
let p = self.presentingViewController
self.dismiss(animated: true) {
p?.dismiss(animated: true, completion: nil)
}
Wenn Sie ein Storyboard verwenden, können Sie "Abwicklungssegment" verwenden. Schauen Sie sich hier zum Beispiel https://cocoacasts.com/how-do-unwind-segues-work/ an. – kiwisip
@kiwisip Guter Vorschlag, aber tut mir leid, ich habe nicht erwähnt, dass B und C auch von einigen anderen Controllern abgesehen von A dargestellt werden können, also würde ich mehrere Abwicklungswege benötigen und C müsste wissen, woher B ursprünglich präsentiert wurde das könnte ein bisschen unordentlich werden. Ich suche also nach etwas, das C allein tun kann (oder C und B, wenn B auch an der Entlassung beteiligt sein muss). – Gruntcakes
Sie können den presentingViewController direkt ablehnen, es sollte alle vorgestellten ViewControllers –