Могу ли я иметь полноэкранный ViewController, но все еще могу провести пальцем вниз, чтобы вернуться к родительскому (запускающему) ViewController
В iOS 13, когда мы представляем новый ViewController
let newVC = NewViewController()
self.present(newVC, animated: true)
это выглядит так, как показано ниже, где это не FullScreen, и его можно провести вниз, чтобы вернуться к запускающему ViewController
Чтобы сделать его полноэкранным, мы можем просто использовать
.fullScreen
как показано ниже.
let newVC = NewViewController()
newVC.modalPresentationStyle = .fullScreen
self.present(newVC, animated: true)
Это будет выглядеть, как показано ниже, в полноэкранном режиме. Однако он больше не позволяет мне смахивать вниз, чтобы вернуться к родителю.
Есть ли способ смахнуть назад и вернуться к родительскому элементу с включенным FullScreen?
1 ответ
Решение
Вы можете попробовать следующий пример:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
//Button is added via storyboard
@IBAction func presentButtonDidTap(_ sender: UIButton) {
let vc = NewViewController()
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true)
}
}
class NewViewController: UIViewController {
override func viewDidLoad() {
self.view.backgroundColor = .gray
let gesture = UISwipeGestureRecognizer(target: self, action: #selector(dismissVC))
gesture.direction = .down
view.isUserInteractionEnabled = true // For UIImageView
view.addGestureRecognizer(gesture)
}
@objc
private func dismissVC() {
dismiss(animated: true)
}
}