• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:09:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个问题,这是由状态栏隐藏然后重新出现引起的 - 这样做会将导航栏的位置从显示在状态栏下方更改为显示在其后面。即导航栏的顶部不再可见,因为状态栏在它的顶部。

我的程序是这样构建的,我有一个显示状态栏和导航栏的根 View Controller , View Controller 包含在导航 Controller 中,即

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.myTableViewController];
self.window.rootViewController = navController;

View Controller 包含一个表 View ,如果用户选择一行,则会创建另一个 Controller 并将其推送到导航 Controller 的堆栈。

这个新的 View Controller 隐藏状态栏并隐藏导航栏,除非用户点击屏幕,在这种情况下导航栏出现(并且它也是半透明的,它不在父 View Controller 中)。

我的问题是,当用户从这个 View Controller 导航回表 View Controller 时,导航栏现在显示在状态栏后面。

我在表 View 的 viewWillAppear: 中有以下代码,我认为应该将所有内容重置为原来的样子。
- (void)viewWillAppearBOOL)animated
{    
    [[UIApplication sharedApplication] setStatusBarHidden: NO withAnimation: UIStatusBarAnimationFade];
    self.navigationController.navigationBar.translucent = NO;
    [self.navigationController setNavigationBarHidden:NO animated:YES];

为什么重新出现表格 View 时导航栏会出现在状态栏后面?

谢谢



Best Answer-推荐答案


我相信状态栏大约有 20 像素高,所以将导航栏的 origin.y 设置为 20,它应该修复它。我知道这很烦人,但根据我的经验,这似乎是解决它的唯一方法。

当您的应用程序退出后台状态时,还要检查导航栏的位置,我知道我的导航栏在进入前台时会立即恢复到状态栏下方。

关于ios - 如果我隐藏状态栏,然后让它重新出现,那么导航栏的位置就会向上移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068223/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap