gpt4 book ai didi

ios - 在 ViewController 之间切换后,如何重置导航委托(delegate)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:44 25 4
gpt4 key购买 nike

导航开始,所有委托(delegate)方法都已设置,一切都按预期进行。

但是,如果用户切换到另一个 ViewController,而导航仍处于打开状态,并返回到导航 View Controller ,则导航委托(delegate)会发生一些事情,并且所有导航委托(delegate)方法都没有响应。

我当然尝试再次设置它们

[SKRoutingService sharedInstance].navigationDelegate = self;

甚至尝试先将它们设置为 nil 然后再将它们设置为 self

[SKRoutingService sharedInstance].navigationDelegate = nil;
[SKRoutingService sharedInstance].navigationDelegate = self;

但它不起作用。

所以我的问题是:

我什至可以在导航开始后设置导航委托(delegate)吗?

ViewController“丢失”委托(delegate)的一般原因可能是什么?

附言当我在它们之间切换时,我尝试不将委托(delegate)设置到另一个 View Controller (即使我在另一个 View Controller 上也有一张 map ,但没有成功)。一旦我通过切换到另一个 Controller 来更改我的 NavigationView Controller ,navigationDelegate 方法就会变得无响应。

最佳答案

好吧,显然这与委托(delegate)无关,但事实上我不知道我必须重新开始导航,一旦我返回到导航打开的屏幕。

当我转到第二个屏幕时,我有另一个 map ,我可以看到用户光标在移动,所以我假设导航仍在打开,因为 map 是一个单例。

但最终,重新开始导航并解决了问题

SKNavigationSettings* navSettings = [SKNavigationSettings navigationSettings];

navSettings.navigationType=SKNavigationTypeSimulation;
//navSettings.navigationType = SKNavigationTypeReal;

navSettings.distanceFormat=SKDistanceFormatMilesFeet;
navSettings.zoomLevelConfigurations = nil;
[SKRoutingService sharedInstance].mapView.settings.displayMode = SKMapDisplayMode3D;

[[SKRoutingService sharedInstance]startNavigationWithSettings:navSettings];

关于ios - 在 ViewController 之间切换后,如何重置导航委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639076/

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