質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

ContainerViewで繋いだ子ビューの中のヘッダービューからinitialViewControllerにビューを表示させたい

maplemee
maplemee

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1回答

0評価

0クリップ

1138閲覧

投稿2019/10/04 15:16

編集2022/01/12 10:58

やりたいこと
initialViewController(最初に呼び出される画面)からContainerViewで繋いだ子ビューの関係にある
ScrollViewController(ヘッダー画面とメイン画面を子ビューに持つViewController)のヘッダー画面の中からボタンを押した時、
大元である最初に呼び出される画面(ContainerViewの親ビュー・孫ビューであるヘッダー画面からは親の親になる?)に画面全体として緑のUIViewを表示させたい。

StoryBoard
イメージ説明

試したこと

Swift

import UIKit import MXParallaxHeader final class HeaderViewController: UIViewController { @IBOutlet var greenview: UIView! //このビューを画面全体に表示させたい @IBAction func addAction(_ sender: Any) { parent?.view.addSubview(greenview) //親ビューへ表示させるよう試してみました } }

ヘッダービュー
イメージ説明

実行結果
画面全体にではなく、ヘッダー画面とメイン画面の関係に縛られたメイン画面の方に当て嵌まる形で表示される結果に
イメージ説明

わからないこと
parent?.view.addSubviewでは大元の親ビューを指定できていないのでしょうか?

画面全体に表示するにはどう変更すればよろしいでしょうか?

MXParallaxHeaderというヘッダーを使用しています。

追記 10/9
MXParallaxHeaderという画面を分割するモジュールによりピンクと水色の上下の分割関係による縛りで
ここで設定したUIViewはbringSubviewToFront(_ view: UIView)を使っても
上(ヘッダー)か下(分割されたメイン画面)での出力になるようです。以下はbringSubviewToFrontを追加した時のViewの階層です。
イメージ説明

そこでこの2分割されたMXParallaxHeaderよりもっと奥にある親ビューへ直接UIViewを持たせて
addSubview(出現させたいUIView) したところうまくいきました。

イメージ説明

そこでわからないこと
ピンクの画面(ヘッダー)のUIボタンから違うViewContorollerが持つUIViewを参照するにはどうすればよろしいでしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

maplemee
maplemee

2019/10/09 01:38

ありがとうございます。 前面にbringSubviewToFrontをしてみたのですがMXParallaxHeaderのViewControllerの上下分割の縛りによりどうしても上画面か下画面に当て嵌まるようです。 そこで階層の奥にある親ビューにUIViewを持たせてaddSubviewしたところ表示がうまくいきました。 追記にも載せたのですが、ピンクの画面(ヘッダー)のViewControllerのUIボタンから違うViewContorollerが持つUIViewを参照するにはどうコーディングすればよろしいでしょうか?m(_ _)m

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています