Multitasking iPad - ViewController abhängig von der aktuellen size class anzeigen?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Multitasking iPad - ViewController abhängig von der aktuellen size class anzeigen?

    Hallo Leute

    Meine App hat einen viewController, von dem aus ein sidStarViewController aufgerufen wird. Dies geschieht durch das drücken eines Buttons und funktioniert auch vorzüglich. Constraints sind alle gesetzt, und es sieht in allen Multitasking Ansichten und Orientations gut aus.

    Lediglich im 1/3 Splitview möchte ich den ViewController komplett ausblenden.

    Hier mal soweit mein Code:


    Quellcode

    1. override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    2. super.viewWillTransition(to: size, with: coordinator)
    3. if traitCollection.horizontalSizeClass == .compact && traitCollection.verticalSizeClass == .regular {
    4. self.dismiss(animated: true, completion: nil)
    5. }
    6. }
    Mir ist bewusst, dass dieser Code nicht das gelbe vom Ei ist, da er derzeit lediglich den sidStarViewController verwirft.


    Was mich aber stutzig macht:


    Wenn ich Multitasking starte, dann bin ich in der 1/2 Split View, was auch insofern funktioniert, dass der view im SidStarViewController deinstalliert wird (Ich habe das im IB für compact view so gesetzt). Allerdings ist mein rootViewController immer noch für eingaben blockiert. Switch ich dann zu 1/3 splitView wird der rootViewController freigegeben.

    Also, wie bekomme ich das hin, dass der ViewController in 1/3 SplitView komplett verworfen wird, allerdings in 1/2 splitView erhalten bleibt? Laut Apple sind beide Ansichten .compact, das habe ich soweit bereits überprüft. Ich verwende übrigens das iOS 13 SDK Beta.

    Ich wäre hier um Hilfe sehr dankbar.
    MacBook Pro 16" M2 Max 32 GB RAM, - iPad Pro 12.9" M1 256 GB WiFi+Cellular - iPhone 14 Pro 256 GB - Apple Watch Ultra