iOS 5になって動作しなくなった ModalView での NavigationController

今回やっちまったのは、アプリケーションで ModalView を表示して、その ModalView は NavigationController でできてるって構成。

例えばアプリケーションの MainView にある「ModalView」ボタンをタップすると、下からニョロっと MyModalTopView が上がってくる。

こんな感じ。

このアプリケーションの MainViewController にはこんな感じのコードがあって ModalView を表示してる。

- (IBAction)tapModalViewButton:(id)sender {
	MyModalTopViewController *modalTopViewController = [[MyModalTopViewController alloc] initWithNibName:@"MyModalTopViewController" bundle:nil];
	UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:modalTopViewController];
	[self presentModalViewController:navigationController animated:YES];
}

そして MyModalTopViewController にはこんな感じのコードがあって、ナビゲーションバーの「Done」ボタンをタップすると呼び出されて ModalView を消して MainView が表示される。

- (IBAction)tapDoneButton:(id)sender {
	[[self.navigationController parentViewController] dismissModalViewControllerAnimated:YES];
}

このコード、iOS 4.3.5 までは動いていた。


でも iOS 5 になったら「Done」ボタンをタップしても何も起きない。
さて困った。