みかづきブログ その3

3ヶ月つづけてみました。

whose view is not in the window hierarchy! を調べよう。

MainViewContoroller の viewDidLoadメソッドを、

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    SubViewController * subViewController = [[SubViewController alloc] init];
    [self presentViewController:subViewController animated:YES completion:nil];
}

的な感じで実装したら、

Warning: Attempt to present <SubViewController: 0x10c908260> on <MainViewController: 0x10c9037d0> whose view is not in the window hierarchy!

と怒られました。

- (void)viewDidAppear:(BOOL)animated
{
    SubViewController * subViewController = [[SubViewController alloc] init];
    [self presentViewController:subViewController animated:YES completion:nil];
}

という感じで、viewDidAppear内に移動したらOKでした。

viewDidAppearがいつ呼ばれているのかわかっていなかったのですが、
親切な方が この記事 を教えてくれました。非常にわかりやすいです。