iOS7では、viewControllerに実装する必要があります
- (BOOL)prefersStatusBarHidden {
return YES;
}
ステータスバーを非表示にして、plistでキー値「コントローラーベースのステータスバーの外観を表示」を設定できます。これが最も簡単な方法です。
またはUIApplicationクラスのstatusBarHiddenプロパティを使用して、コード内で非表示にできます。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Swift 3.
特定のView Controllerのステータスバーを非表示にします
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
アプリケーション全体でステータスベースを非表示にする
UIApplication.shared.isStatusBarHidden = true
プロジェクトの情報plistでキー値「コントローラーベースのステータスバーの外観を表示」NOを設定します。
View controller-based status bar appearance
に設定NO
:
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
}
特定のView Controllerで動的に非表示/表示する必要がある場合は、次のようなことができます。
(変更する必要がない場合は、- (BOOL)prefersStatusBarHidden
を使用して設定を返すことをお勧めします。)
// view controller header
@interface MyViewController : UIViewController {
BOOL shouldHideStatusBar;
}
@end
@implementation
- (BOOL)prefersStatusBarHidden {
return shouldHideStatusBar; // backed by your instance variable
}
- (void)setPrefersStatusBarHidden:(BOOL)hidden {
shouldHideStatusBar = hidden;
// Don't call this on iOS 6 or it will crash since the
// `setNeedsStatusBarAppearanceUpdate` method doesn't exist
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
// [self setNeedsStatusBarAppearanceUpdate]; // (if Xcode 5, use this)
}
@end
IOS> = 7.0の場合、次のコードを使用します。
構文:
// Present in UIViewController of UIKit Frameworks
- (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0); // Defaults to NO
使用法:
- (BOOL)prefersStatusBarHidden {
return YES;
}
IOS <7.0では、次のコードを使用します。
構文:
// Present in UIApplication of UIKit Frameworks
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);
使用法:
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
step1。 Set View controller-based status bar appearance
あなたのinfo.plist
to [〜#〜] yes [〜#〜]
step2。UIViewController
にコードを入力すると、UIViewController
を提示するとステータスバーが非表示になります。
private var statusBarIsHidden = false
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
statusBarIsHidden = true
setNeedsStatusBarAppearanceUpdate()
}
override var prefersStatusBarHidden: Bool {
return statusBarStatus
}
on Swift 4:
UIApplication.shared.isStatusBarHidden = ..true/false
私の経験では、iOS 9/Xcode 7.3のinfo.plistファイルのコードと値の両方が必要です。
これをviewDidLoadメソッドに追加します。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
これをinfo.plistファイルにブール値として追加し、NOに設定します。
View controller-based status bar appearance
IOS 9.0以降およびSwiftを使用している場合。一部のView Controllerではステータスバーを非表示にしたいが、すべてではない場合-View controller-based status bar appearance
の値Info.plist
はYES
に設定されます。それ以外の場合、すべてのView Controllerで同じパラメーターが使用されます。
prefersStatusBarHidden
のサブクラスでUIViewController
をオーバーライドします
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
preferredStatusBarStyle
を変更する場合も同様です。
override var preferredStatusBarStyle: UIStatusBarStyle {
get {
return .lightContent
}
}
誰もがそれを行うために最も更新された方法を望んでいた場合(Swift 2.1および最新のXcode 7.2)
「info.plistでView Controllerベースのステータスバーの外観をNOに設定」
UIApplication.sharedApplication()。statusBarHidden = true //アプリデリゲート内のどこかに配置します(applicationWillまたはDidFinishLaunchingWithOptions:
これを試して
[[UIApplication sharedApplication] setStatusBarHidden:YES];