0

関連する .xib ファイルを持つUIViewControllerカスタム UIView ( ) を含むストーリーボード内に UIView/UIViewController ( ) があります。CustomViewをロードすると、次の現象が発生しますUIViewController

  • CustomViewawakeFromNib関数が呼び出されます
  • SOMETHING(?) は、サブビューのフレームを高さ 0.0 に設定します。スタック トレースが明らかにする[UIViewController autoresizedArchivedView](関連する?)
  • UIViewControllerviewDidLoad関数が呼び出されます

awakeFromNibと の間で発生するこの「何か」をviewDidLoadどのように制御できるか考えていますか?

4

1 に答える 1

0

viewDidLoadが完了するまでジオメトリック プロパティはアーカイブされたオブジェクトに設定されません。

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        NSLog (@"%@ %@",
               NSStringFromSelector(_cmd),
               NSStringFromCGRect(self.testView.frame));

    }

    - (void) viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        NSLog (@"%@ %@",
               NSStringFromSelector(_cmd),
               NSStringFromCGRect(self.testView.frame));
    }


    - (void) viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
        NSLog (@"%@ %@",
               NSStringFromSelector(_cmd),
               NSStringFromCGRect(self.testView.frame));
    }

ログ:

    viewDidLoad {{0, 0}, {0, 0}}
    viewWillAppear: {{0, 0}, {0, 0}}
    viewDidAppear: {{80, 224}, {160, 274}}
于 2013-03-27T05:02:26.413 に答える