谷歌地图位置选择器 iOS Swift

4

我正在使用Swift实现谷歌地图位置选择器。谷歌提供的位置选择器会自动显示一个带有导航栏的视图控制器。但是当我选择位置或按下导航栏上的返回按钮时,视图控制器立即消失而没有任何过渡效果。我无法通过位置选择器API访问导航栏。我应该如何用动画方式关闭位置选择器视图控制器,或者访问导航栏?我很困惑。我的代码在我按下一个按钮时调用了位置选择器:

    @IBAction func pickPlace(sender: UIButton) {
    if let mapView = self.mapView {

        let visibleRegion = mapView.projection.visibleRegion()
        let viewport = GMSCoordinateBounds(coordinate: visibleRegion.farLeft, coordinate: visibleRegion.nearRight)
        let config = GMSPlacePickerConfig(viewport: viewport)
        placePicker = GMSPlacePicker(config: config)
        placePicker.pickPlaceWithCallback { (place: GMSPlace?, error: NSError?) -> Void in
            if error != nil {
                println("Error picking place: \(error!.localizedDescription)")
                return
            }
            if place != nil {
                self.userLocationTextField.text = place!.name
                println("Place name \(place!.name)")
                println("Place address \(place!.formattedAddress)")
                println("Place attributions \(place!.attributions)")


                let marker = GMSMarker(position: place!.coordinate)
            } else {
                println("No place selected")
            }
        }
    }

我唯一能够获取到位置选择器视图控制器的方法是使用以下代码:

    let topVC = UIApplication.sharedApplication().keyWindow?.rootViewController

但即使有了那段代码,我仍然不能改变导航栏或使视图控制器以动画方式消失。


我也遇到了同样的问题。你最终解决了吗? - scottlow
很遗憾,我从来没有能够修复它。 - mperel
我有同样的问题。你找到导航问题的解决方案了吗? - karthik
1个回答

0

我之前也遇到了同样的问题,不过我已经用以下代码解决了。 我已经在位置选择器按钮的操作方法中编写了以下代码。

UINavigationBar.appearance().barTintColor = YOURCOLOR
UINavigationBar.appearance().isTranslucent = false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接