通过UINavigationViewController在兄弟视图之间切换

时间:2012-03-13 00:48:58

标签: ios uinavigationcontroller

我正在使用NavigationViewController在主视图和详细视图之间导航。现在我希望能够在没有首先显示主视图的情况下切换到同级详细视图,我尝试在相同的方法中执行popViewController和pushViewController,或者在详细视图中使用popViewController,然后在popViewController之后在mater的viewDidLoad中执行pushViewController但是它不会工作 - 视图最终返回主视图而不切换到细节。知道该怎么办吗?

此处建议的解决方案无法解释: Switching Content Views Issue

1 个答案:

答案 0 :(得分:4)

我从未尝试过,但这应该有效:

// create instance of new view controller
MyViewController *myViewController = [[MyViewController alloc] init];

// get current stack of viewControllers from navigation controller
NSMutableArray *viewControllers = [[self.navigationController viewControllers] mutableCopy];

// replace top view controller in stack
[viewControllers replaceObjectAtIndex:([viewControllers count] - 1) withObject:myViewController];

// set modified stack of view controllers in navigation controller
[self.navigationController setViewControllers:viewControllers animated:YES];

根据the docs,你的应用程序将使用推送动画转换到新的视图控制器,然后当单击后退按钮时,就好像你从中推出的视图控制器从未出现过那样。 (如果您不想要动画,请使用animated:NO