菜鸟教程小白 发表于 2022-12-12 08:52:33

ios - uinavigationcontroller 在 iOS 中失去状态恢复的色彩


                                            <p><p>我在 View 中设置我的导航 Controller 的色调确实加载方法如下:</p>

<pre><code>- (void)viewDidLoad
{
    ;
    UINavigationController *navigationController = ;
    navigationController.navigationBar.barTintColor = ;
}
</code></pre>

<p>上面将我的导航栏设置为红色,没有问题。 </p>

<p>当用户关闭应用并且应用的状态被编码然后重新打开应用并且状态被解码时,导航栏显示默认的白色。</p>

<p>在状态恢复时调用 View did load 但导航 Controller 为零。我猜这就是为什么默认颜色回来了。</p>

<p>我已经在我的导航 Controller 以及正在改变颜色的 ViewController 上设置了恢复 ID。</p>

<p>有谁知道我可以做些什么来保持我为导航 Controller 设置的红色?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这可能是由于在将 ViewController 添加为导航 Controller 的子 Controller 之前加载了 View 。</p>

<p>代替<code>viewDidLoad</code>,像这样实现<code>didMoveToParentViewController:</code>中的代码:</p>

<pre><code>- (void)didMoveToParentViewController:(UIViewController *)parent
{
    ;

    UINavigationController *navigationController = (UINavigationController*)parent;
    navigationController.navigationBar.barTintColor = ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - uinavigationcontroller 在 iOS 中失去状态恢复的色彩,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22571412/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22571412/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - uinavigationcontroller 在 iOS 中失去状态恢复的色彩