如果有一个显示UIScrollView全屏的rootViewController。当我点击UIScrollview时,我想翻转屏幕并显示一个设置屏幕(也有第二个屏幕,导航控制器的原因)。
我可以使用rootViewController中的以下代码显示设置屏幕:
self.navController = [[UINavigationController alloc]
initWithRootViewController:self.settingsViewController];
以及:
[self.navController pushViewController:self.settingsViewController animated:YES];
我的问题是:当我在设置视图中完成后,如何返回到rootViewController,因此我在其中创建了导航控制器的控制器类,因此不在堆栈中。
答案 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。