菜鸟教程小白 发表于 2022-12-12 15:15:49

ios - 为什么我的 ViewDidLoad 每次都加载?


                                            <p><p>我正在创建一个实现 FB 登录的应用程序。所以我在 ViewController.m 文件的 ViewDidLoad 中编写了一个 FBLogin 按钮代码。</p>

<pre><code>- (void)viewDidLoad {
;
// Do any additional setup after loading the view, typically from a nib.

FBSDKLoginButton *loginButton = [ init];
loginButton.center = self.view.center;
;

}
</code></pre>

<p>但是当我运行这段代码时。 fb按钮出现在我的应用程序的所有页面中,这意味着我的viewController.m每次都会调用ViewDidLoad方法。为什么?
我正在寻找最后 4 小时的解决方案,但还没有得到任何结果。
请帮帮我。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>正如你所说,你的 ViewController 继承自这个 ViewController ,因此每个调用 <code></code> 的 ViewController 都会执行这个方法。 (解决方案不是删除 <code>super</code> 调用)。</p>

<p>除了创建这个 ViewController 和其他每个 ViewController 都继承自这个之外,你可以:</p>

<ul>
<li>创建一个 <code>CommonViewController</code> 来实现 ViewController 之间的所有通用功能</li>
<li>创建一个 <code>FacebookLoginViewController</code>,它也继承自 <code>CommonViewController</code>。</li>
</ul>

<p>因此,您的继承树如下所示:</p>

<pre><code>CommonViewController
      /          \
   /            \
    /            \
FacebookLoginVC    OtherViewControllers
</code></pre>

<p>代替:</p>

<pre><code>ViewController (which is equivalent to FacebookViewController)
   |
   |
   |
OtherViewControllers
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为什么我的 ViewDidLoad 每次都加载?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/30118585/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/30118585/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为什么我的 ViewDidLoad 每次都加载?