0

私は次のようなものを使用しています:
VC = [[SettingsViewController alloc] initWithNibName:nil bundle:nil];

viewDidLoad はまだ呼び出されていません。
しかし、私がするとき:
VC.view.frame = CGRectMake(...);

この時点で、viewDidLoad が呼び出されます。

しかし、問題は、上記のコード ステートメントで渡しているビュー ディメンションがviewDidLoadメソッドで使用されていないことです。
ビューが使用されていることがわかると思うので、ビューをロードする時が来ました。ビューをロードした後、フレームの寸法をビューに割り当てる必要があります。viewDidLoadしかし、メソッドでそれらのディメンションを使用できるように、ビューのディメンションを呼び出す前に設定したい場合はどうすればよいでしょう かviewDidLoad..
initWithFrame..

また、View Controllerにビューの寸法がありません。ビュー ディメンションを VC の外部から割り当てる必要があります。
したがって、おそらくinitWithNibName:bundle:メソッドを呼び出した後、ビューフレームの寸法を変数に保存できます..しかし、それはきれいな解決策のようには見えませんか?

4

2 に答える 2

3

viewDidLoadビューがロードされたときに呼び出されます。(サプライズ)

そのため、 を呼び出すVC.viewまでに、それが戻る前にviewDidLoadedが実行され、ビューが返され、フレームが設定されます。

あなたの現在のアプローチからは、それは不可能です

とにかく、なぜビューフレームが必要なのviewDidLoadですか? viewWillAppearおそらく、その部分を/に移動できます。viewDidAppearこれは、ビューが表示されようとしているときにのみ呼び出されます

于 2013-04-10T09:00:23.403 に答える