菜鸟教程小白 发表于 2022-12-12 16:17:25

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


                                            <p><p>导航开始,所有委托(delegate)方法都已设置,一切都按预期工作。</p>

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

<p>我当然尝试再次设置它们</p>

<pre><code>.navigationDelegate = self;
</code></pre>

<p>甚至尝试先将它们设置为 nil,然后再将它们设置为 self</p>

<pre><code>.navigationDelegate = nil;
.navigationDelegate = self;
</code></pre>

<p>但它不起作用。</p>

<p>所以我的问题是:</p>

<p>导航开始后,我什至可以设置导航委托(delegate)吗?</p>

<p>ViewController“丢失”委托(delegate)的一般原因是什么?</p>

<p>附:当我在它们之间切换时,我尝试不将委托(delegate)设置到另一个 ViewController (即使我在另一个 ViewController 上也有 map ,但没有成功)。一旦我通过切换到另一个 Controller 来更改我的 NavigationViewController ,navigationDelegate 方法就会变得无响应。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好吧,显然这与委托(delegate)无关,但事实上我不知道我必须再次开始导航,一旦我返回到导航所在的屏幕。</p>

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

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

<pre><code>SKNavigationSettings* navSettings = ;

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

    navSettings.distanceFormat=SKDistanceFormatMilesFeet;
    navSettings.zoomLevelConfigurations = nil;
    .mapView.settings.displayMode = SKMapDisplayMode3D;

    [startNavigationWithSettings:navSettings];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 ViewController 之间切换后,如何重置导航委托(delegate),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32639076/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32639076/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 ViewController 之间切换后,如何重置导航委托(delegate)