LoginSignup
8
7

More than 5 years have passed since last update.

ContainerViewControllerを使うときの初期化の順序がわかりにくい

Last updated at Posted at 2016-10-15

Main_storyboard_—_Edited7.png

アクティビティ図0.png

StoryBoardの話です。初期化の順序を意識しておかないと、子ビューコントローラのframeがおかしいまま親ビューコントローラの中に表示されたりします。アクティビティ図にまとめてみました。おかしいところがあればご指摘下さい。

ViewController.swift
//セグエ先のPreviewViewControllerのプロパティを取得する方法
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "preview" {
            let previewViewController = segue.destinationViewController as! PreviewViewController
            //PreviewViewControllerのプロパティをprintする
            print("MainViewController@prepareForSegue: ", previewViewController.view.frame)
        }
    }

なおprepareForSegueが実行されるタイミングは早く、viewDidLoadviewDidAppearedよりも先に実行されます。

したがって、このときの子ビューコントローラのframeなどは、まだ親ビューコントローラにaddSubViewされる前の値のため、このframeを使ってビューを作ったりすると変なことになります。

2016/10/17

図はこうかな?

アクティビティ図0.png


ブログやっています:http://weed.nagoya

8
7
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
8
7