Как перейти ко второму контроллеру просмотра, когда мы быстро нажимаем на mapView с помощью MKMapView? - PullRequest
0 голосов
/ 25 мая 2020

В первом контроллере просмотра у меня есть mapview и под текстовыми полями containerview .. если я нажму на карту, как go второй контроллер просмотра?

если я коснусь в любом месте карты, я должен go на второй V C:

FirstV C .. если я нажму на карту, я должен go to 2ndV C

2ndV C дизайн:

2ndV C

для обоих контроллеров просмотра я использую MKMapView

для этого я написал код из этого ответа Жест касания для MapKit

override func viewWillAppear(_ animated: Bool) {

    let gestureRecognizer = UITapGestureRecognizer(target: self, action:"triggerTouchAction:")
     mapView.addGestureRecognizer(gestureRecognizer)

}
func triggerTouchAction(gestureReconizer: UITapGestureRecognizer) {
         //Add alert to show it works
       print("print working")
       let viewController = self.storyboard?.instantiateViewController(withIdentifier: "NewZoomAddressViewController") as! NewZoomAddressViewController;

      self.navigationController?.pushViewController(viewController, animated: true);
   }

, тогда он попадает ниже ошибки

RegistrationViewController triggerTouchAction:]: нераспознанный селектор отправлен в экземпляр 0x7f999e81a400 Завершение работы приложения из-за неперехваченного исключения 'NSInvalidArgumentException', причина: '- [Project.RegistrationViewController1 triggerTouchAction:]: нераспознанный селектор отправлен в экземпляр 0x7f999e81a400'

Пожалуйста, помогите как создать дизайн, подобный упомянутым выше экранам.

1 Ответ

0 голосов
/ 26 мая 2020

Используйте UITapGestureRecognizer следующим образом

override func viewWillAppear(_ animated: Bool) {

        let gestureRecognizer = UITapGestureRecognizer(target: self, action:#selector(triggerTouchAction(_:)))
         mapView.addGestureRecognizer(gestureRecognizer)

}
@objc func triggerTouchAction(gestureReconizer: UITapGestureRecognizer) {
         //Add alert to show it works
       print("print working")
       let viewController = self.storyboard?.instantiateViewController(withIdentifier: "NewZoomAddressViewController") as! NewZoomAddressViewController;

      self.navigationController?.pushViewController(viewController, animated: true);
   }
...