谷歌地图选择适用于iOS的地方选择器 - 在Swift中出现GMSPlacePicker但在动画结束时消失

时间:2015-06-29 17:46:40

标签: ios swift google-maps google-maps-sdk-ios

我正在尝试将简单的GMSPlacePicker示例转换为Swift

但是Picker会出现,但是一旦从Right到Left的转换完成,它就会立即消失。

    //  ViewController.swift
import UIKit
import CoreLocation
import GoogleMaps

class ViewController: UIViewController {

    @IBAction func buttonPlacesPicker_TouchUpInside(sender: AnyObject) {

        //-----------------------------------------------------------------------------------
        var southWestSydney : CLLocationCoordinate2D = CLLocationCoordinate2DMake(-33.8659, 151.1953)
        var northEastSydney : CLLocationCoordinate2D = CLLocationCoordinate2DMake(-33.8645, 151.1969)

        var sydneyBounds : GMSCoordinateBounds = GMSCoordinateBounds(coordinate: southWestSydney, coordinate:northEastSydney)

        //var config : GMSPlacePickerConfig = GMSPlacePickerConfig(viewport:sydneyBounds)
        var config : GMSPlacePickerConfig = GMSPlacePickerConfig(viewport:nil)

        //---------------------------------------------------------------------
        var placePicker : GMSPlacePicker = GMSPlacePicker(config: config)

        //typealias GMSPlaceResultCallback = (GMSPlace?, NSError?) -> Void

        var error: NSError? = nil
        var gmsPlace: GMSPlace? = nil

        placePicker.pickPlaceWithCallback(){
            (gmsPlace, error) -> Void in
            if let error = error{
                println("error:\(error)")
            }else{
                if let gmsPlace = gmsPlace{
                    if let formattedAddress = gmsPlace.formattedAddress{
                        println("formattedAddress:\r\(formattedAddress)")
                    }else{
                        println("gmsPlace.formattedAddress is nil")
                    }

                }else{
                    println("gmsPlace is nil")
                }

                println("info")
            }
        }
    }
}

我的应用已成功要求地点

我有一个谷歌地图的桥接标题。

我没有使用可可豆荚来安装框架

但我之前在Obj-C中使用过框架

所以只需将GoogleMaps.framework拖到项目中即可 和内部资源包

我在之前的教程和链接器错误中添加了以下所有内容:

enter image description here

当我跑步时,我可以在采摘地图中看到悉尼。

它从屏幕右侧过渡到左侧。

当它到达左侧时消失

我添加了Reveal应用,但我无法看到选择器视图离线。

我的GMS服务api密钥是正确的,因为我在obj-c应用程序中使用它来显示地方选择器。

捆绑ID是正确的。

我的快速知识是“我想我知道。我可能不知道”

任何想法?

2 个答案:

答案 0 :(得分:7)

您应该保留对GMSPlacePicker的引用。将它设为属性而不是局部变量。

答案 1 :(得分:0)

FIXED使它成为一个伊娃...... DOH!

class ViewController: UIViewController {
    var placePicker : GMSPlacePicker?

    @IBAction func buttonPlacesPicker_TouchUpInside(sender: AnyObject) {

        self.placePicker?.pickPlaceWithCallback(){

        ...