UINavigationController并呈现模态控制器

时间:2011-04-14 08:48:54

标签: iphone ios uinavigationcontroller

如果有一个显示UIScrollView全屏的rootViewController。当我点击UIScrollview时,我想翻转屏幕并显示一个设置屏幕(也有第二个屏幕,导航控制器的原因)。

我可以使用rootViewController中的以下代码显示设置屏幕: self.navController = [[UINavigationController alloc] initWithRootViewController:self.settingsViewController];

以及: [self.navController pushViewController:self.settingsViewController animated:YES];

我的问题是:当我在设置视图中完成后,如何返回到rootViewController,因此我在其中创建了导航控制器的控制器类,因此不在堆栈中。

1 个答案:

答案 0 :(得分:1)

我采用了他们在Metronome example中使用的Apple解决方案。

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

显示navigationController

[self presentModalViewController:navController animated:YES];

根据apple的例子,我创建了一个settingsViewControllerDelegate接口,rootViewController采用了该接口。接口并不复杂,只需要一个委托实例var和一个需要由rootViewController实现的回调方法(settingsViewControllerDidFinish)。在那个方法中,你打电话:

[self dismissModalViewControllerAnimated:YES];

通过这种方式,我可以使用navigationController进行几个设置屏幕,并且我可以将navigationController返回到rootViewController。