Контроллер модального вида Swift с прозрачным фоном [дубликат]
этот вопрос уже есть ответ здесь:
Я знаю, что эта тема довольно популярна, но я немного 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 ответов
вы можете сделать это так:
в контроллере главного вида:
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 = снимите флажок непрозрачный
- Презентация = В Текущем Контексте
As Crashalot указал в своем комментарии: убедитесь, что segue использует только Default
как Presentation
и Transition
. Используя Current Context
на Presentation
делает модал почернеет, не оставаясь прозрачным.