我正在Swift中实现谷歌地图选择器。谷歌提供的地点选择器会自动显示带有导航栏的视图控制器。当我选择位置或按导航栏上的后退按钮时,视图控制器会立即消失而不进行任何转换。我似乎无法通过地方选择器API访问导航栏。我怎么能用动画关闭placepicker视图控制器,或者可能访问导航栏?我很茫然。当我按下按钮时,我的代码会调出地点选择器:
@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
但即使使用该代码,我也无法更改导航栏或使视图控制器被动画解除。
答案 0 :(得分:0)
我也面临同样的问题,我已经解决了使用下面的代码。 我在下面编写了代码选择器按钮操作方法
UINavigationBar.appearance().barTintColor = YOURCOLOR
UINavigationBar.appearance().isTranslucent = false