やりたいこと
initialViewController(最初に呼び出される画面)からContainerViewで繋いだ子ビューの関係にある
ScrollViewController(ヘッダー画面とメイン画面を子ビューに持つViewController)のヘッダー画面の中からボタンを押した時、
大元である最初に呼び出される画面(ContainerViewの親ビュー・孫ビューであるヘッダー画面からは親の親になる?)に画面全体として緑のUIViewを表示させたい。
試したこと
Swift
1import UIKit 2import MXParallaxHeader 3final class HeaderViewController: UIViewController { 4 @IBOutlet var greenview: UIView! //このビューを画面全体に表示させたい 5 @IBAction func addAction(_ sender: Any) { 6 parent?.view.addSubview(greenview) //親ビューへ表示させるよう試してみました 7 } 8}
実行結果
画面全体にではなく、ヘッダー画面とメイン画面の関係に縛られたメイン画面の方に当て嵌まる形で表示される結果に
わからないこと
parent?.view.addSubviewでは大元の親ビューを指定できていないのでしょうか?
画面全体に表示するにはどう変更すればよろしいでしょうか?
MXParallaxHeaderというヘッダーを使用しています。
追記 10/9
MXParallaxHeaderという画面を分割するモジュールによりピンクと水色の上下の分割関係による縛りで
ここで設定したUIViewはbringSubviewToFront(_ view: UIView)を使っても
上(ヘッダー)か下(分割されたメイン画面)での出力になるようです。以下はbringSubviewToFrontを追加した時のViewの階層です。
そこでこの2分割されたMXParallaxHeaderよりもっと奥にある親ビューへ直接UIViewを持たせて
addSubview(出現させたいUIView) したところうまくいきました。
そこでわからないこと
ピンクの画面(ヘッダー)のUIボタンから違うViewContorollerが持つUIViewを参照するにはどうコーディングすればよろしいでしょうか?m(_ _)m
回答1件
あなたの回答
tips
プレビュー