Ich bekomme eine Warnung "in einer etwas spezialisierten Architektur Warnung" Controller auf abgelösten Ansicht Controller entmutigen ". Und - es gibt einige ziemlich große UI-Probleme, die daraus resultieren. Ich habe eine Architektur mit 2 verschiedenen nicht verbundenen Gruppen in meinem Storyboard. Die erste Gruppe ist die Hauptschnittstelle meiner App und enthält ein UIStackView. Die zweite Gruppe besteht aus einem UIView plus angehängten Popover-Segment, wie in der Abbildung unten gezeigt.Detached Controller Probleme auf einem dynamisch geladenen UIStackView
ich bevölkern die UIStackView der Gruppe dynamisch 1 mit bis zu 8 Instanzen des UIView der Gruppe 2. Diese in eine Funktion namens loadViews getan wird() in der UIStackView Unterklasse, die je nach Bedarf aufgerufen wird. Hier ist der gereinigt Pseudo-Code zur Erläuterung:
for i in 0 ..< green.count {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let greenVC = storyboard.instantiateViewControllerWithIdentifier("greenViewController") as! GreenVC
greenVC.progressionStackView = self
greenVC.index = i;
greenViewControllers.append(greenVC)
if let greenView = greenVC.view as! GreenView! {
greenView.fillColor = UIColor.orangeColor()
greenView.setNeedsDisplay()
self.addArrangedSubview(greenView)
}
}
self.layoutIfNeeded()
Jedes Mal, wenn ich die popover auslösen auf einem der eingebetteten grünen Ansichten in der Stapelansicht ich die Warnung erhalten von oben. Noch wichtiger ist, bei der Ausführung auf einem iPad im Split-View-Modus, verliert die Stapelansicht jedes Mal eine grüne Ansicht, bis keine mehr vorhanden sind. Letzteres ist nur ein Anzeigeproblem, da beim Aktualisieren alle Ansichten zurück sind.
Ich bin völlig ratlos und bin mir nicht sicher, wie ich das beheben oder die Dinge anders umsetzen kann. Wenn das Problem besteht, dass die geladenen Ansichten nicht angehängt sind, können sie "erneut angehängt" werden? Oder gibt es eine Möglichkeit, eine Stapelansicht mit bis zu 256 Ansichten dynamisch zu laden?