Когда я представляю от TabbarController до внешнего Viewcontroller, представляющего правильно, а также правильно отклоняющего. Но когда я перетаскиваю, чтобы закрыть ViewController, он показывает черный экран с использованием UIPanGestureRecognizer.
От TabbarController до ViewController Настоящий код
let newVC = self.storyboard?.instantiateViewController(withIdentifier: "ExampleViewController") as! ExampleViewController
self.definesPresentationContext = true
newVC.modalPresentationStyle = .overCurrentContext
self.present(newVC, animated: true, completion: nil)
Отклонить код ExampleViewController для TabbarController
override func viewDidLoad()
{
super.viewDidLoad()
let gestureRecognizer = UIPanGestureRecognizer(target: self,
action: #selector(panGestureRecognizerHandler(_:)))
view.addGestureRecognizer(gestureRecognizer)
}
@IBAction func panGestureRecognizerHandler(_ sender: UIPanGestureRecognizer) {
let touchPoint = sender.location(in: view?.window)
var initialTouchPoint = CGPoint.zero
switch sender.state {
case .began:
initialTouchPoint = touchPoint
case .changed:
if touchPoint.y > initialTouchPoint.y {
view.frame.origin.y = touchPoint.y - initialTouchPoint.y
}
case .ended, .cancelled:
if touchPoint.y - initialTouchPoint.y > 200 {
self.navigationController?.popViewController(animated: false)
} else {
UIView.animate(withDuration: 0.2, animations: {
self.view.frame = CGRect(x: 0,
y: 0,
width: self.view.frame.size.width,
height: self.view.frame.size.height)
})
}
case .failed, .possible:
break
@unknown default:
break
}
}
Примечание: - Иерархия моего проекта, подобная этому NavigationController --> SomeViewControllers --> TabbarViewController --> ExampleViewController
заранее спасибо
newVC.modalPresentationStyle = .overCurrentContext
и попробуйте снова перетащить. - person Niraj   schedule 05.03.2020