我已将GoogleMaps API整合到我的应用中,一切顺利。然而,经过一些开发后,我意识到我需要有两个不同的ViewControllers,它们都显示GMSMapView
,但每个都有不同的功能。我决定创建一个具有通用功能的基类,并且基类符合GMSMapViewDelegate
。在这个基类中,我有其他的东西:
class BaseMapViewController: UIViewController {
var mapView = GMSMapView()
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
loadMap()
}
func loadMap() {
mapView = GMSMapView(frame: CGRectZero)
mapView.mapType = kGMSTypeHybrid
self.view = mapView
}
}
extension BaseMapViewController: GMSMapViewDelegate {}
其中一个子类需要实现func mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D)
所以我只是在子类中实现它(如下所示),但它没有注册任何抽头。
class SellerMapViewController: BaseMapViewController {
override func viewDidLoad(){
super.viewDidLoad()
}
func mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D) {
print("\(coordinate.latitude,coordinate.longitude)")
}
}
然后我尝试将该委托方法放在基类中,它仍然没有注册任何点击。关于我做错了什么或我能尝试什么的任何想法?
谢谢!
答案 0 :(得分:1)
听起来可能会发生一些事情: