• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Swift] TraitCollectionDidChange - Probleme mit Multitasking

Thaddäus

Golden Noble
Registriert
27.03.08
Beiträge
18.388
Hallo Leute

Ich habe hier folgende Ausgangslage:

Mein RootViewController zeigt Google Maps, sowie einige weitere Bedienelemente. Unter anderem gibt es da einen Button, der zu einem weiteren ViewController führt, der Modal angezeigt wird.

Innerhalb dieses zweiten ViewControllers habe ich eine "BaseView", in der alle Elemente des zweiten ViewControllers untergebracht sind. Die Hintergrundfarbe, der Grundview ist auf ClearColor gesetzt. Die View mit den Elementen habe ich für die "Compact" Sizeclass auf deinstalliert gesetzt, was soweit auch funktioniert.

NUR: Der viewController selbst existiert weiter. Das heisst, dass ich die Map auf dem RootViewController nicht mehr bedienen kann, sobald ich die zweite View ausgeblendet wird wenn ich in den Compact Mode übergehe.

Hier mal mein Code im zweiten ViewController, der so halb funktioniert:

Code:
 override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
      
        super.traitCollectionDidChange(previousTraitCollection)
             
        if traitCollection.horizontalSizeClass == .compact {
      
            self.dismiss(animated: true, completion: nil)
        }
        else {
           if traitCollection.horizontalSizeClass == .regular{

                }
            }
        }

Das Problem dabei ist, dass der zweite ViewController damit (logischerweise) einfach verworfen wird, und somit der RootViewController wieder freigegeben wird. Würde mich nicht weiter stören, wenn ich nun noch einen Weg finden würde, diesen wieder zu holen, wenn ich in den Regular Mode zurückwechsle...

Ich hoffe, dass mir hier jemand helfen kann... :)
 
Zuletzt bearbeitet: