UINavigationController并提供一个模态控制器

如果得到一个显示UIScrollView全屏的rootViewController。 当我点击UIScrollview时,我想翻转屏幕并显示设置屏幕(其中还有第二个屏幕,navigationController的原因)。

我能够通过使用下面的代码在我的rootViewController显示设置屏幕: self.navController = [[UINavigationController alloc] initWithRootViewController:self.settingsViewController];

和: [self.navController pushViewController:self.settingsViewController animated:YES];

我的问题是:当我在我的设置视图完成时,如何返回到rootViewController,所以我创build了导航控制器,因此不在堆栈上的控制器类。

我采用了苹果公司在节拍器例子中使用的解决scheme。

我将settingsViewController设置为navigationController的rootViewController。 比我显示navigationController使用:

[self presentModalViewController:navController animated:YES];

按照苹果的例子,我创build了一个rootViewController采用的settingsViewControllerDelegate接口。 界面并不复杂,只是一个委托实例var和一个callback方法(settingsViewControllerDidFinish),需要由rootViewController来实现。 在你调用的方法中:

[self dismissModalViewControllerAnimated:YES];

通过这种方式,我可以使用navigationController进行一些设置 – 屏幕显示,并且可以将navigationController返回到rootViewController。