web-dev-qa-db-de.com

Swift Modal View Controller mit transparentem Hintergrund

Ich weiß, dass dieses Thema sehr beliebt ist, aber ich habe ein kleines Problem mit einer Programmiersprache. Tatsache ist, dass ich immer noch nicht verstehe, wo ich den Code platziere. Nun, ich werde den ganzen Fall erzählen:

enter image description here

Ich versuche, ein Modal zu erstellen Swift ein wenig anders als normal: Durch Klicken auf eine Schaltfläche wird der ViewController (folgender Modaltyp) auf dem Bildschirm angezeigt, jedoch mit transparentem Hintergrund. Nur Die blaue Ansicht mit Beschriftung wird angezeigt. Wenn dieser ViewController angezeigt wird, hat er einen transparenten Hintergrund, aber sobald der Übergang abgeschlossen ist, bleibt er auf dem schwarzen Hintergrund. Die undurchsichtige Option wurde bereits deaktiviert und einige Optionen getestet, aber nichts diese Fehlerbehebung.

Einige können mir helfen?

Das Video ist ein Test im Simulator des Falls ( https://www.youtube.com/watch?v=wT8Uwmq9yqY ).

Ich fange mit Swift an und habe immer noch keine Ahnung, wie man Xcode programmiert. Ich habe eine Antwort auf eine Frage gelesen, die den folgenden Code enthält, um das Problem zu lösen:

self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;

Wo füge ich diesen Code ein?

95
user5046034

Du kannst es so machen:

In Ihrem Hauptansichts-Controller:

func showModal() {
    let modalViewController = ModalViewController()
    modalViewController.modalPresentationStyle = .overCurrentContext
    presentViewController(modalViewController, animated: true, completion: nil)
}

In Ihrem Modal View Controller:

class ModalViewController: UIViewController {
    override func viewDidLoad() {
        view.backgroundColor = UIColor.clearColor()
        view.opaque = false
    }
}

Wenn Sie mit einem Storyboard arbeiten:

Fügen Sie einfach einen Storyboard-Abschnitt mit Kind auf Present Modally Zu Ihrem modalen Ansichtscontroller hinzu und stellen Sie auf diesem Ansichtscontroller die folgenden Werte ein:

  • Hintergrund = klare Farbe
  • Zeichnen = Deaktivieren Sie das Kontrollkästchen Undurchsichtig
  • Präsentation = Über den aktuellen Kontext

Wie Crashalot in seinem Kommentar betonte: Stellen Sie sicher, dass das -Segue nur Default für beide Presentation und Transition. Wenn Sie Current Context Für Presentation verwenden, wird das Modal schwarz, anstatt transparent zu bleiben.

254
joern