【问题标题】:Switching between sibling views via UINavigationViewController通过 NavigationViewController 在兄弟视图之间切换
【发布时间】:2014-12-04 22:21:25
【问题描述】:
我正在使用 NavigationViewController 在主视图和详细视图之间导航。现在我希望能够在不先显示主视图的情况下切换到同级详细视图,并且我尝试在相同的方法中执行 popViewController 和 pushViewController,或者在详细视图中执行 popViewController,然后在 popViewController 之后在母校的 viewDidLoad 中执行 pushViewController 但它不会工作 - 视图最终回到主视图而不切换到细节。知道该怎么做吗?
据我所知,此处建议的解决方案不起作用:
Switching Content Views Issue
【问题讨论】:
标签:
ios
uinavigationcontroller
【解决方案1】:
我从未尝试过,但这应该可以:
// 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)