Swift Modal View Controller с прозрачным фоном [дубликат]


этот вопрос уже есть ответ здесь:

Я знаю, что эта тема довольно популярна, но я немного iniciate проблема в языке программирования, дело в том, что я до сих пор не понимаю, где я положил код. Ну, я расскажу все дело:

Я пытаюсь сделать модальный Swift немного отличным от обычного: нажав на кнопку, на экране отображается ViewController (следующий модальный тип), но с прозрачным фоном. Будет отображаться только синий вид с меткой. Когда этот ViewController представлен, он имеет прозрачный фон, но как только он завершит переход, он останется с черным фоном. Уже деактивирован непрозрачный вариант, и протестированы некоторые варианты, но ничего этого устранения неполадок.

некоторые могут мне помочь?

видео является тестом в симуляторе по делу (https://www.youtube.com/watch?v=wT8Uwmq9yqY).

Я начинаю с swift, и я все еще довольно потерян с тем, как программировать в Xcode, я прочитал ответ на вопрос, который имеет следующий код для решения этой проблемы:

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

куда мне поместить этот код?

1 81

1 ответ:

вы можете сделать это так:

в главном контроллере вида:

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

в вашем модальном контроллере вида:

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

если вы работаете с раскадровки:

просто добавьте раскадровку Segue с Kind значение Present Modally для вашего модального контроллера вида и на этом контроллере вида установите следующие значения:

  • Фон = Ясно Цвет
  • Drawing = снимите флажок непрозрачный
  • Презентация = Над Текущим Контекстом

как Crashalot указал в своем комментарии: убедитесь, что segue использует только Default как Presentation и Transition. Используя Current Context на Presentation делает модальный черный вместо того, чтобы оставаться прозрачным.