iOS7では、ステータスバーをプログラムで非表示にするにはどうすればよいですか? XCode 4.6.1
( ios6.1 )を使用しており、これを XCode 自体に実装したいと考えています。
12 に答える
iOS7 では、viewController に実装する必要があります
- (BOOL)prefersStatusBarHidden {
return YES;
}
ステータスバーを非表示にして、キー値「コントローラーベースのステータスバーの外観を表示」NOをplistに設定できます。これが最も簡単な方法です。
または UIApplication クラスの statusBarHidden プロパティを使用して、コードで非表示にすることができます。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
スイフト3.0
特定のView Controllerのステータスバーを隠す
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
アプリケーション全体でステータス ベースを非表示にする
UIApplication.shared.isStatusBarHidden = true
プロジェクトのinfo plistで、キー値「コントローラーベースのステータスバーの外観を表示」NOを設定します。
- (void)viewDidLoad
{
[super viewDidLoad];
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
{
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
else
{
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
}
// Add this method
- (BOOL)prefersStatusBarHidden {
return YES;
}
特定の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 9 / Xcode 7.3 の info.plist ファイルにはコードと値の両方が必要です。
これをviewDidLoadメソッドに追加します。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
これをブール値として info.plist ファイルに追加し、NO に設定します。
View controller-based status bar appearance
これを試して
[[UIApplication sharedApplication] setStatusBarHidden:YES];