菜鸟教程小白 发表于 2022-12-12 23:01:32

ios - 有什么方法可以避免调用 tabbarcontroller 之类的 viewdidload 方法吗?


                                            <p><p>我正在开发一个基于 map 的应用程序。因此,一旦用户打开 <code>MapViewController</code>,我将每 5 秒加载一次数据。 </p>

<p>我正在使用导航 Controller (推送 ViewController )。</p>

<p>所以每次用户去 <code>MapViewController</code> <code>viewdidload</code> 方法调用。我不想那样。</p>

<p>这就是为什么我试图避免像 <code>tabbarcontroller</code> 这样的 <code>viewdidload</code> 方法。</p>

<p>有什么办法可以做到吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>viewDidLoad</code> 被调用,因为当您将 <code>MapViewController</code> 从导航 Controller 顶部弹出时,它正在被释放。当您重新创建 ViewController 时,它会重新分配,并且 View 会再次加载。如果您在包含导航 Controller 的类中保留对 <code>MapViewController</code> 的引用,则 ARC 不会释放该对象,您可以使用此引用将其推回堆栈,以便 <code>viewDidLoad</code> 不会再被调用。</p>

<p>编辑:添加代码供引用:</p>

<pre class="lang-objc prettyprint-override"><code>MapViewContoller *mapViewController; // declared globally so there&#39;s a strong reference.

- (void) openMapViewController {
    if (!mapViewController) {
      mapViewController = ;
    }
    ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 有什么方法可以避免调用 tabbarcontroller 之类的 viewdidload 方法吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40924796/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40924796/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 有什么方法可以避免调用 tabbarcontroller 之类的 viewdidload 方法吗?