Swift Modal View Controller met transparante achtergrond

Ik weet dat dit onderwerp behoorlijk populair is, maar ik heb een klein probleem met een programmeertaal, het feit is dat ik nog steeds niet begrijp waar ik de code heb geplaatst. Nou, ik zal de hele zaak vertellen:

enter afbeelding beschrijving hier

Ik probeer een modale Swift te maken die iets anders is dan normaal: door op een knop te klikken, wordt de ViewController weergegeven (volgens het modale type) op het scherm, maar met een transparante achtergrond. Alleen de blauwe weergave met label wordt weergegeven. Wanneer deze ViewController wordt gepresenteerd, heeft deze een transparante achtergrond, maar zodra deze de overgang voltooit, blijft deze op de zwarte achtergrond. Heb de ondoorzichtige optie al gedeactiveerd en enkele opties getest, maar niets deze probleemoplossing.

Sommigen kunnen me helpen?

De video is een test in de simulator van de zaak (https://www.youtube.com/watch?v =wT8Uwmq9yqY).

Ik begin met swift, en ik ben nog steeds behoorlijk verdwaald met hoe te programmeren in Xcode, ik las een antwoord op een vraag met de volgende code om dit op te lossen:

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

Waar plaats ik deze code?


Antwoord 1, autoriteit 100%

Je kunt het als volgt doen:

In je hoofdweergavecontroller:

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

In uw modale weergavecontroller:

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

Als je met een storyboard werkt:

Voeg gewoon een Storyboard Segue toe met Kindingesteld op Present Modallyaan uw modale weergavecontroller en stel op deze weergavecontroller de volgende waarden in:

  • Achtergrond = Heldere kleur
  • Tekening = Schakel het selectievakje Dekkend uit
  • Presentatie = Over huidige context

Zoals Crashalotopmerkte in zijn opmerking: zorg ervoor dat de seguealleen Defaultvoor zowel Presentationals Transition. Door Current Contextte gebruiken voor Presentationwordt de modal zwart in plaats van transparant te blijven.

Other episodes