画面遷移しても消えないViewを作る – Swift4

説明

例えば、UIViewをselfのviewにaddSubviewした場合、画面遷移した場合、そのviewは画面から消える。当たり前だけど。じゃあ、画面遷移しても、Viewから消えないUIViewとか、その他のオブジェクトを作りたい場合ってどうすればいいの?

結論から言えば、UIWindowに追加してしまえばいい。UIWindowにaddSubviewすれば、そのオブジェクトは永続的に画面に居座り続けることができる。下記の実装を見てみれば、恐ろしく簡単である。でも、知っていないと辿り着けない実装である。

インターネットで検索しても、検索の仕方が悪いと、全然このやり方に辿り着けないことがある。今言ったように、実装方法は簡単だし、そもそも、そんなこと実装はあまりしないのか、誰も記事を書かないし、検索もあまりされないのかも。

画面遷移しても消えないViewを作りたいと思った人が、これからも少なからずいるかもしれない。そんなとき、この記事を発見してもらえれば幸いだ。この記事は、あなたのために書い他のだ。

実装

        let TestView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 250, height: 250))
        let bgColor = UIColor.blue
        TestView.backgroundColor = bgColor

        let win:UIWindow = UIApplication.shared.delegate!.window!!
        win.addSubview(TestView)

環境

  • 画面遷移
  • 消えない
  • uiview
  • view
  • UIWindow
  • swift
  • swift3
  • swift4
  • xcode
  • xcode9
藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事