20
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS 8でステータスバーを消す

Last updated at Posted at 2015-03-03

iOS SDK 8.1, Swift 1.1, Xcode 6.1.1です。

  1. Info.plistに View controller-based status bar appearance YES を追加する。
  2. rootViewControllerがきちんと設定されているか確認する。
  3. ステータスバーを消したいViewのViewControllerをUIViewController:presentViewControllerで表示する場合、大概UINavigationViewController挟んでるので、navigationController.modalPresentationCapturesStatusBarAppearance = trueする。これがないと次に設定するメソッドがそもそも呼ばれない。
  4. ステータスバーを消したいUIViewControllerのprefersStatusBarHiddenメソッドをオーバーライドしてtrueを返す。

rootViewControllerをプログラムから設定しなおす場合は次のように書くといいらしい。

let storyBoard = UIStoryboard(name: "Foo", bundle: nil)
let viewController = storyBoard.instantiateViewControllerWithIdentifier("Bar") as UIViewController
UIApplication.sharedApplication().keyWindow!.rootViewController = viewController

参考

http://anz-note.tumblr.com/post/62524756917/ios7-o
http://lab.dolice.net/blog/2013/09/25/objc-ios7-status-bar/
http://stackoverflow.com/questions/22653993/programatically-change-rootviewcontroller-of-storyboard

P.S.

そして今は、NavigationBarが非表示のViewControllerからmodalを表示し、dismissして戻ってくるとステータスバーに食い込んでViewが表示される事象と戦っている。

追記

今このエントリを知りました(そして過去の自分がStockしていた)
http://qiita.com/makoto_kw/items/d7ed59aff27fb95c9fde

20
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?