菜鸟教程小白 发表于 2022-12-13 11:09:41

ios - 如果我隐藏状态栏,然后让它重新出现,那么导航栏的位置就会向上移动


                                            <p>我有一个问题,这是由状态栏隐藏然后重新出现引起的 - 这样做会将导航栏的位置从显示在状态栏下方更改为显示在其后面。即导航栏的顶部不再可见,因为状态栏在它的顶部。<br><br>我的程序是这样构建的,我有一个显示状态栏和导航栏的根 ViewController , ViewController 包含在导航 Controller 中,即<br><pre><code>UINavigationController *navController = [ initWithRootViewController:self.myTableViewController];
self.window.rootViewController = navController;
</code></pre><br> ViewController 包含一个表 View ,如果用户选择一行,则会创建另一个 Controller 并将其推送到导航 Controller 的堆栈。<br><br>这个新的 ViewController 隐藏状态栏并隐藏导航栏,除非用户点击屏幕,在这种情况下导航栏出现(并且它也是半透明的,它不在父 ViewController 中)。<br><br>我的问题是,当用户从这个 ViewController 导航回表 ViewController 时,导航栏现在显示在状态栏后面。<br><br>我在表 View 的 viewWillAppear: 中有以下代码,我认为应该将所有内容重置为原来的样子。<br><pre><code>- (void)viewWillAppear:(BOOL)animated
{   
    [ setStatusBarHidden: NO withAnimation: UIStatusBarAnimationFade];
    self.navigationController.navigationBar.translucent = NO;
    ;
</code></pre><br>为什么重新出现表格 View 时导航栏会出现在状态栏后面?<br><br>谢谢</p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p>我相信状态栏大约有 20 像素高,所以将导航栏的 origin.y 设置为 20,它应该修复它。我知道这很烦人,但根据我的经验,这似乎是解决它的唯一方法。<br><br>当您的应用程序退出后台状态时,还要检查导航栏的位置,我知道我的导航栏在进入前台时会立即恢复到状态栏下方。</p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如果我隐藏状态栏,然后让它重新出现,那么导航栏的位置就会向上移动,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9068223/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9068223/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如果我隐藏状态栏,然后让它重新出现,那么导航栏的位置就会向上移动