1つを除くすべてのビューでアプリのステータスバーを表示したい。私はplistで「ステータスバーが最初に隠されている」を変更しようとしました、私は試しました:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
これはバーを非表示にしますが、ステータスバーがあった場所に青いugいボックスを残します(これは私のビューの一部ではありません。そこには青いものは何もありません)。
また、Xcode 4.2の「インターフェイスビルダー」ビットで、フルスクリーンとステータスバーの設定を必要とするレイアウトを変更しようとしました。
助言がありますか?
編集-解決策:
私は以下を含めることでそれをやった:
-(void)viewWillDisappear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(void)viewDidAppear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
ステータスバーを表示するすべてのページで。
ビューを切り替えるたびにタブバーが表示され、再表示されるため、まだ途切れ途切れに見えます。しかし、私は今、この愚かな問題に約5時間取り組んでいるので、これをしなければなりません。
2番目の編集-
ViewWillAppearsにsetStatusBarHidden = NOを含めることで途切れを修正しました。神はすべてがどのように機能するかを知っていますが、実際に機能します。
これを試してみてください。完璧に動作します。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
XIBでは、ステータスバーのオプションを設定しません。
iOS 7の場合。
Info.plistに移動し、存在しない場合は2つの属性を追加します。 「ステータスバーは最初は非表示」を「YES」に設定し、「UIViewControllerBasedStatusBarAppearance」を「NO」に設定します。これにより、アプリのステータスバーが非表示になります。
#pragma mark - Hide statusbar
-(void)hideStatusBar {
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
// iOS 7.0 or later
[self setNeedsStatusBarAppearanceUpdate];
#else
// less than 7
[[UIApplication sharedApplication] setStatusBarHidden:YES];
#endif
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
上記の解決策が機能しない解決策を探している人がいる場合(そしてまだ上部に迷惑な青い20pxのギャップがあります)、ステータスを望むView Controllerの実装ファイルのviewWillAppearにこれを入れてみてください非表示にするバー。
self.navigationController.navigationBar.frame = CGRectOffset(self.navigationController.navigationBar.frame, 0.0, -20.0);
それを修正するのに文字通り12時間かそこらかかり、それが解決策だったので、誰かがこの厄介な問題を抱えている場合に備えてWordを広めています。
Kartikのソリューションは私のために働いた。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
これをviewWillAppear:
インスタンスメソッドに追加しました。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
self.webView.scalesPageToFit = YES;
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.co.uk"]]];
}
そして、私もこれに何年も費やしました。 Xcode 4.2を使用して、iOS5シム。
しかし、私が最初にそれを実装したとき、一番上の迷惑な「スペース」がそこにありました。ストーリーボードでView Controllerを選択し、プロパティを次のように設定しました。
私はフルスクリーンを望んでチェックしました。
出来上がり、それはすべてうまくいった。
私はこれが古い質問であることを知っていますが、この答えのどれも私にはうまくいきませんので、これは私が単一のviewControllerでステータスバーを非表示にする方法です
まず、parentViewControllerで設定する必要があります。
- (UIViewController *)childViewControllerForStatusBarHidden {
if ( hideStatusBarViewController ) {
return hideStatusBarViewController;
}
return nil
}
作成された場合にのみ子View Controllerを返します。それ以外の場合はnilがデフォルトです。 hideStatusBarViewControllerを追加するときは、呼び出す必要があります
[self setNeedsStatusBarAppearanceUpdate];
parentViewControllerでは、この関数はchildViewControllerForStatusBarHiddenを強制的に読み取ります。最後に、hideStatusBarViewControllerで設定する必要があります
- (BOOL)prefersStatusBarHidden {
return YES;
}
それは私のために働く唯一のソリューションです。私はそれが誰かを助けることを願っています。
シングルビューのステータスバーを非表示にする場合、これが解決策です
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[self.view sizeToFit];
}
別のアプローチをお勧めします。そのビューをアプリケーションのウィンドウに挿入します。
YourUIAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
[appDelegate.window insertSubview:self.yourView atIndex:([[appDelegate.window subviews]count])];
こうすると、ステータスバーに表示されます
私はそれがあなたを助けることを願っています
これが役立つコードのスニペットです。ビューが読み込まれるとステータスバーが表示され、ビューを離れると再び非表示になります。
-(void)viewWillAppear:(BOOL)animated {
if([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden: withAnimation:)])
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
else
[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated {
if([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden: withAnimation:)])
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
else
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
}