Как перезагрузить главный viewcontroller после действия swipe gesture

#ios #swift #swipe #dismiss

#iOS #swift #проведите #отклонить

Вопрос:

Привет, я использую следующий код для удаления, чтобы просмотреть контроллер с помощью действия салфетки с помощью жестов.

Здесь я представляю экран с действием кнопки.

на представленном экране я закрываю с помощью действия салфетки после отклонения, я хочу перезагрузить основной вид.

 let sb = UIStoryboard.init(name: "Pickup", bundle: nil)
let vc = sb.instantiateViewController(withIdentifier: "CleaningnoteController")as! CleaningnoteController
vc.dcnote = self.dryclean
vc.scheduleid = String(scheduleId)
self.navigationController?.present(vc, animated: true, completion: nil)

//IN presented screen.
Here uiview is the added view on the Viewcontroller.

var initialTouchPoint: CGPoint = CGPoint(x: 0,y: 0)
let get = UIPanGestureRecognizer(target: self, action: #selector(pangectureRecognizer))
self.uiview.addGestureRecognizer(get)


//Swipe Action.

@objc func pangectureRecognizer(_ sender: UIPanGestureRecognizer){

  let touchPoint = sender.location(in: self.view?.window)

  if sender.state == UIGestureRecognizerState.began {
     initialTouchPoint = touchPoint
  } else if sender.state == UIGestureRecognizerState.changed {
    if touchPoint.y - initialTouchPoint.y > 0 {
       self.view.frame = CGRect(x: 0, y: touchPoint.y - initialTouchPoint.y, width: self.view.frame.size.width, height: self.view.frame.size.height)
    }
  } else if sender.state == UIGestureRecognizerState.ended || sender.state == UIGestureRecognizerState.cancelled {
     if touchPoint.y - initialTouchPoint.y > 100 {
       self.dismiss(animated: true, completion: nil)
     } else {
       UIView.animate(withDuration: 0.3, animations: {
         self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
     })
   }
 }
}
  

Комментарии:

1. Вы можете установить обратный вызов или уведомление для перезагрузки главного view controller.

2. Используйте делегат для перезагрузки контроллера представления, прежде чем отклонять представленный контроллер представления, если вы хотите начать с него.