我可以在我的应用中隐藏状态栏:
- (void)viewDidLoad{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
当我选择我的发布图像并第一次启动时,它就是图片上的状态栏.我怎么能隐藏这个?
我经常隐藏状态栏
override func prefersStatusBarHidden() -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
但Xcode给了我一个错误,说"方法不会覆盖其超类中的任何内容".
如果我删除了override,Xcode会给出一个不同的错误:"方法"prefersStatusBarHidden()'与Objective-C选择器'prefersStatusBarHidden'与来自超类'UIViewController'的'prefersStatusBarHidden'的getter冲突与同一个Objective-C选择器"
我还在Target的常规设置中选中了"隐藏状态栏":
但状态栏仍然显示.
我在另一个Stack Overflow答案中找到了这个方法
UIApplication.shared.setStatusBarHidden(true, with: .none)
Run Code Online (Sandbox Code Playgroud)
但这也不会隐藏状态栏.
在Xcode 8 Beta 1中,我使用了第一种和第二种方法,它们可以隐藏状态栏(第一种方法没有返回错误).现在我可以用Xcode 8 Beta 4隐藏状态栏吗?
注意:状态栏显示在模拟器设备和物理设备上,均运行iOS 10.
我正在研究需要查看/共享PDF文件的React Native应用程序.我使用的是react-native-open-file模块,它使用UIDocumentInteractionController来查看PDF文件.打开PDF文件时,状态栏将显示在PDF上.我的应用程序始终隐藏着staus栏.查看PDF时如何隐藏状态栏?
//
// RNDocumentInteractionController.m
// RNDocumentInteractionController
//
// Created by Aaron Greenwald on 7/5/16.
// Copyright © 2016 Wix.com. All rights reserved.
//
#import "RNDocumentInteractionController.h"
#import <UIKit/UIKit.h>
@implementation RNDocumentInteractionController
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(open: (NSURL *)path)
{
UIDocumentInteractionController *interactionController = [UIDocumentInteractionController interactionControllerWithURL:path];
interactionController.delegate = self;
[interactionController presentPreviewAnimated:YES];
}
- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller
{
return [[[[UIApplication sharedApplication] delegate] window] rootViewController];
}
@end
Run Code Online (Sandbox Code Playgroud)
我能够添加一个documentInteractionControllerDidEndPreview方法,在关闭后隐藏状态,但我宁愿永远不会打开状态栏:
- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
Run Code Online (Sandbox Code Playgroud)
这是菜单栏上状态栏的图片:
我在导航控制器中有一个UITableViewController,带有一个搜索栏.这是我在viewDidLoad中添加搜索栏的方法:
let resultsController = SearchTableViewController()
resultsController.people = people
searchController = UISearchController(searchResultsController: resultsController)
let searchBar = searchController.searchBar
searchBar.placeholder = "Search a person"
searchBar.sizeToFit()
tableView.tableHeaderView = searchBar
searchController.searchResultsUpdater = resultsController
Run Code Online (Sandbox Code Playgroud)
这是结果:

我尝试在故事板中编辑表格视图以添加约束以使其从顶视图的边距更远,但我无法添加约束,可能是因为表视图位于UITableViewController中.
这是我在子类中的实现UIViewController:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
}
Run Code Online (Sandbox Code Playgroud)
我尝试将它放在AppDelegate初始化代码中(使用传入的UIApplication实例),但状态栏仍为黑色..
这是iOS 8的错误还是我做错了?
注意:我可能会通过讨论ios 8来破坏某人的法律.它是一个普遍的问题,当编译时也不适用于ios 7.
更新:仍然不起作用,即使Info.plist和代码中的值 - didFinishLaunchingWithOptions

我已经阅读了这个问题,但不仅是这个问题,还没有找到解决我问题的方法:
我实际上发生的是,我隐藏了状态栏的内容,但没有隐藏状态栏本身:
override var prefersStatusBarHidden: Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
它一直显示在屏幕顶部,非常透明,根本没有内容。
ios ×8
swift ×6
statusbar ×3
xcode ×3
ios8 ×1
objective-c ×1
react-native ×1
sprite-kit ×1
swift3 ×1
uistatusbar ×1
uitableview ×1