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 ответ:
вы можете сделать это так:
в главном контроллере вида:
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
делает модальный черный вместо того, чтобы оставаться прозрачным.