• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

[Swift] TraitCollectionDidChange - Probleme mit Multitasking

  • Ersteller Ersteller Thaddäus
  • Erstellt am Erstellt am

Thaddäus

Gast
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 von einem Moderator: