我的iPhone应用程序要求始终隐藏状态栏.这通常很容易做到,如果我只在iPhone上运行应用程序,它就有效.但是,如果我在iPad上运行该应用程序,状态栏仍会显示在内容的顶部.那么,无论我的iPhone专用应用程序运行在哪个设备上,如何确保隐藏状态栏?我目前正在我的代码中执行以下操作:
为每个视图控制器调用此方法(我实际上在UIViewController上创建了一个类别,可以自动为任何VC实现此类,但它与在每个vc文件中编写它基本相同):
-(BOOL)prefersStatusBarHidden{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我还在Info.plist中将"状态栏最初隐藏"设置为YES和"查看基于控制器的状态栏外观"为NO.我也试过检测正在使用和调用的设备
[UIApplication sharedApplication]setSetStatusBarHidden:YES]
Run Code Online (Sandbox Code Playgroud)
在AppDelegate,但也没有运气.所以,我相信我已经尝试过一个人们想要尝试的一切.
我正在构建iOS8应用程序.在我的tableview控制器上,我使用self.navigationController.hidesBarsOnSwipe = YES,在向上滑动手势时隐藏navigationBar.它工作得很好,但我的statusBar变得透明,并显示下面的表格内容.
在故事板上,状态栏是顶栏设置为"推断"
我想:1.保持我的状态栏不透明2.保持与navigationBar相同的颜色3.表格内容滚动在statusBar下面
谢谢.
objective-c uinavigationbar uinavigationcontroller uistatusbar ios8
在视图加载之前setStatusBarHidden:NO设置时,其他元素在StatusBar正下方显示为正确对齐.但是,在视图加载后设置时,会部分覆盖.UINavigationBarsetStatusBarHidden:NOUINavigationBar
加载所述视图后必须显示StatusBar,但如何在不遇到上述问题的情况下完成此操作?
我已注册接收有关状态栏框架更改的通知,但从未收到过.
以下是我注册通知的方式:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(appWillChangeStatusBarFrameNotification:)
name:UIApplicationWillChangeStatusBarFrameNotification
object:nil];
Run Code Online (Sandbox Code Playgroud)
在我们的应用程序的某些地方,我们显示/隐藏状态栏:
[[UIApplication sharedApplication] setStatusBarHidden:maximize
withAnimation:UIStatusBarAnimationSlide];
Run Code Online (Sandbox Code Playgroud)
但是,当启用个人热点或拨打电话时,它也可以改变大小.有没有办法在它改变时获得实际的状态栏框架?
这个问题意味着由于SDK错误而导致通知不起作用,至少对于方向更改而言.这是什么原因?有没有解决方法?
我的rootViewController是一个UITabbarController并包含UINavigationControllers.
为了限制旋转,因为iOS6,在一些但不是所有视图上,我已经将这两个控制器子类化,以尊重其最顶层或可见视图的shouldAutorotate响应.
这一切都很完美......大多数时候.
在一种情况下,从不允许旋转的视图(UITableviewController)开始.
我推出一个允许自动旋转的视图,旋转到横向然后再回到肖像.
然后当我弹出视图时,一切都很好看.
但是现在如果我旋转设备,状态栏就会单独旋转,在顶部留下一个空白区域并覆盖当前视图左侧的一部分.当前视图不会旋转(因为它不应该旋转).只有状态栏来回旋转.视图保持响应,接收触摸并正常工作,不以任何方式调整大小或响应旋转(因为它不应该).
此行为一直持续到我杀死并重新启动应用程序.一旦它发生,我找不到其他方法让它停止.重新启动时,所有工作正常,并将在不确定的持续时间内正常工作.我可以坐在那里推动,弹出,来回旋转我心中的内容,没有任何问题.
我从来没有能够在模拟器中重新创建它.
它没有明显的原因发生,我无法实现.我会说有85%的时间它正常工作.当我没有发生几天甚至几周时,我以为我已经多次修复了它.然后,突然之间又发生了.
我在任何描述此行为的论坛中找不到帖子,所以我甚至找不到开始调试的地方.状态栏如何从顶部到另一侧摆动,视图不会以任何方式调整大小或旋转或响应.如果我知道如何实现这一目标,我将有一席之地.
我有兴趣在我的应用程序中实现左侧菜单我已经使用了NVSlideMenuController.它工作正常.
但我想修改它.我想用contentViewController滑动状态栏,不想在MenuViewController上显示状态栏.
目前它看起来像下面的图像

我想和下面的图像一样

提前致谢
(iOS 7 Xcode 5.0.2)
我使用以下方法,在根视图控制器上成功将状态栏颜色更改为白色
[self setNeedsStatusBarAppearanceUpdate]; // Update status bar style
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent; // Set status bar color to white
}
Run Code Online (Sandbox Code Playgroud)
导航到子视图控制器时,我正在尝试将状态栏颜色更改为黑色,我不知道该怎么做.(状态栏颜色仍为白色)
我搜索了一下,找到了这个方法:childViewControllerForStatusBarStyle 我读了Apple的文档,但是仍然不知道如何/在哪里使用它,我不确定这是不是正确的方法
任何人都知道如何更改子视图控制器中的状态栏颜色?
我在我的应用程序中有以下代码,特别是在viewDidLoad:设置我的UISearchController.
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.definesPresentationContext = NO;
self.searchController.searchBar.scopeButtonTitles = @[];
self.searchController.searchBar.searchBarStyle = UISearchBarStyleProminent;
[_tableView setTableHeaderView:_searchController.searchBar];
Run Code Online (Sandbox Code Playgroud)
每当tableView调用搜索栏(添加到搜索栏)时,UIStatusBar颜色从UIStatusBarStyleLightContent暗变为白色(白色变为黑色).现在,我想出我是否设置,
self.definesPresentationContext = NO;
Run Code Online (Sandbox Code Playgroud)
以下内容:
self.definesPresentationContext = YES;
Run Code Online (Sandbox Code Playgroud)
问题得到解决,UIStatusBar颜色得以保留.但是,出现了另一个问题.当self.definesPresentationContext设置为YES
,在调用时,搜索栏由于某种原因向下移动,同时(或正确地)在UIRefreshControl显示器底部的下方tableView.
uitableview ios uistatusbar uirefreshcontrol uisearchcontroller
我正在以编程方式将我的状态栏设置为白色:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)
但是电池图标仍然是绿色的?苹果示例在应用此样式时显示电池是否为白色?看到有例子这里.
知道如何将电池从绿色更改为白色吗?:(
状态栏最初隐藏在Info.plist中,"状态栏最初隐藏"设置为YES,"查看基于控制器的状态栏外观"设置为NO.
但是当我呈现一个QlPreviewController时,经过两次点击文件使工具栏消失并再次出现,状态栏也出现在应用程序中.
知道如何防止这种情况发生吗?
uistatusbar ×10
ios ×9
objective-c ×4
iphone ×3
ios7 ×2
statusbar ×2
autorotate ×1
cocoa-touch ×1
ios8 ×1
ipad ×1
uitableview ×1
xib ×1