gpt4 book ai didi

ios - 在更改 VC 之前获取并存储 PanoramaView 的位置

转载 作者:行者123 更新时间:2023-11-30 13:19:10 25 4
gpt4 key购买 nike

我正在尝试学习 Google Map API,并且正在构建一个具有两个 UIViewController 的应用程序。根 UIViewController 加载 Google 街景全景图,如下所示:

@IBOutlet weak var viewStreet: UIView!
var panoView: GMSPanoramaView!

override func viewDidLoad() {
super.viewDidLoad()

let panoView = GMSPanoramaView(frame: CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height))
panoView.delegate = self
panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))

viewStreet.addSubview(panoView)
viewStreet.sendSubviewToBack(panoView)
}

我添加了一个 UIButton 来加载另一个 UIViewController,并且我愿意添加一个“后退”按钮以返回到第一个按钮。使用segues它工作正常,但panoView总是在纬度:-33.732,经度:150.312加载,因为我已经初始化了它。我想要实现的是在切换到第二个 VC 之前返回到最后加载的全景图的纬度/经度,例如:

viewDidLoad -> 纬度。 x1,长。 y1;

移动到另一个全景 -> 纬度。 x2,长。 y2;

改变UIViewController;

返回根 VC,全景纬度。又长。应该是(x2,y2)。

使用didMoveToPanorama方法我可以在每次PanoramaView更改时获取panoID,问题是当VC更改时存储它。我可以使用 NSUserDefaults 还是有更好的方法?这是代码:

 func panoramaView(view: GMSPanoramaView, didMoveToPanorama panorama: GMSPanorama?) {
panoID = panorama!.panoramaID
}

请注意,无法使用方法 didMoveToPanorama:nearCooperative:,因为仅当 Panorama 由于 moveNearCooperative 而移动时才会调用该方法

顺便说一句,我编辑了标题,因为它具有误导性,并通过更多信息改进了帖子。

最佳答案

您可以做的是在更改 Controller 之前存储纬度和经度值,然后将它们恢复为如下所示:

CGFloat latitudeSave;
CGFloat longitudeSave;

-(void) viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];

latitudeSave = -33.732; //save current coordonates here (use panoView current values)
longitudeSave = 150.312;
}

-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

[panoView moveNearCoordinate:CLLocationCoordinate2D(latitude: latitudeSave, longitude: longitudeSave)]; //not sure of this line
}

关于ios - 在更改 VC 之前获取并存储 PanoramaView 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com