zoukankan      html  css  js  c++  java
  • iOS开发之状态栏隐藏(问题篇)

    一、基本应用

    相信基本的隐藏办法网上很多,这里只简单说明一下

    1⃣️改变全局状态栏

    1.在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为NO。即更改为StatusBar的状态不随UIViewController的不同而不同

    2.[[UIApplication sharedApplication]setStatusBarHidden:YES];

    2⃣️交由控制器管理

    1.在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为YES

    2.在控制器中实现下面的方法

    - (BOOL)prefersStatusBarHidden
    {
        return YES;
    }

    二、出现的问题

    我当时出现的问题是上述方法的2⃣️无法隐藏我想要隐藏的那个控制器的状态栏,苦寻很久,终于在一次吃饭当时,想通可能问题出在什么地方了

    单独设置的viewController必须为最高级别的viewController,(every top-level view controller in your app (other than a standard UIKit container view controller) )中调用,这是苹果官方告诉我们的。但是什么是最高级呢?

    其实就是:我们的控制器不能是被包含在其他的控制器中的(导航控制器的话需要是根控制器),我的项目因为框架使用了SWRevealViewController。所以如果我想在里面隐藏某个控制器的状态栏,就必须隐藏在view即将出现的时候,隐藏这个控制器的状态栏,在view即将消失的时候,再使它出现。

    之后我给这个框架增加了一个BOOL属性,再调用setNeedsStatusBarAppearanceUpdate方法来强制调用隐藏状态栏的方法即可。

    问题完美解决!

  • 相关阅读:
    概述各种事务隔离级别发生的影响
    linux内核的经典书籍
    sso 登录,网页跳转的实现方式
    初探移动网站的架构和设计
    C# PrintDocument 打印
    .Text分页技术(1)分页的存储过程分析
    SQL2008使用CTE递归查询批量插入500万数据
    自己写的Web服务器
    OMCS 语音视频框架
    ESFramework4.x
  • 原文地址:https://www.cnblogs.com/letougaozao/p/3941511.html
Copyright © 2011-2022 走看看