当我们在swift中使用MKMapView点击mapView时如何移动到第二个Viewcontroller?
Posted
技术标签:
【中文标题】当我们在swift中使用MKMapView点击mapView时如何移动到第二个Viewcontroller?【英文标题】:How to Move to 2nd Viewcontroller when we tap on mapView using MKMapView in swift? 【发布时间】:2020-05-25 11:08:09 【问题描述】:在第一个 viewcontroller 我有 mapview 和下面的 textfields containerview.. 如果我点击 mapview 如何去第二个 viewcontroller?
如果我点击地图中的任何地方,我应该去第二个 VC:
FirstVC.. if i tap on map i have to go to 2ndVC
第二个VC设计:
2ndVC
对于我使用的两个视图控制器MKMapView
为此我已经从这个答案Tap gesture for 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”
如何设计上述屏幕,请帮助。
【问题讨论】:
***.com/questions/41075945/tap-gesture-for-mapkit @aiwiguna,我刚刚编辑了带有该答案的帖子.. 上面写着unrecognized selector sent to instance
.. 请看一下我编辑的帖子以及您的建议答案.. 我错了
它是因为旧的选择器代码,在当前的 swift 中它会像这样pastebin.com/pya8vhZ9
@aiwiguna,非常感谢您的工作
@aiwiguna 你没有发布答案。如果你发布了答案,那么我可以接受
【参考方案1】:
像这样使用 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);
【讨论】:
以上是关于当我们在swift中使用MKMapView点击mapView时如何移动到第二个Viewcontroller?的主要内容,如果未能解决你的问题,请参考以下文章
当用户滚动 MKMapView 时,从 Core Data 加载其他对象
SwiftUI 上的按钮点击调用 MKMapView.setRegion