iOS:视图控制器之间的导航

Posted

技术标签:

【中文标题】iOS:视图控制器之间的导航【英文标题】:iOS: navigation between viewControllers 【发布时间】:2015-11-11 19:23:41 【问题描述】:

我有这样的流量

navigationController-viewContorller

在 viewController 我有一个可以模态显示其他 3 个 viewController 的开关。它们将单独呈现,目前只有其中一个可以出现在屏幕上。 (每个 viewController 都有相同的 switch 可以呈现其他 viewController)。

 modal-viewContorller1
 modal-viewContorller2
 modal-viewContorller3

我该怎么做?我有一个用于显示其他视图控制器的开关的通用类。但由于它们是以模态方式呈现的,我无法通过已经呈现的 viewController 来消除其中的一些。 (我现在只需要屏幕上的三个模态视图控制器之一)。

我还为每个模态视图控制器提供了导航控制器:

 UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.userInterface];
 [navigationController setNavigationBarHidden:YES];

我怎样才能实现这种流程?

【问题讨论】:

在任何时候都不会有多个视图控制器!!!!将只有一个!!!!你的确切问题是什么? 【参考方案1】:

如果我没看错,您可以在根 viewController 以及每个模态 viewController 中显示 3 个模态 viewController。

1)如果您想从根 VC 呈现模态 VC,请使用:

[self presentViewController:modal-viewContorller1 animated:YES completion:NULL];

如果 VC 已经出现:

[self dismissViewControllerAnimated:YES completion:nil];
[self presentViewController:modal-viewContorller1 animated:YES completion:NULL];

2) 从另一个模态 VC 呈现时:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
[self.presentingViewController presentViewController:modal-viewContorller2 animated:YES completion:NULL];

【讨论】:

以上是关于iOS:视图控制器之间的导航的主要内容,如果未能解决你的问题,请参考以下文章

iOS在导航堆栈中的视图控制器之间循环

iOS 导航控制器获取弹出的视图控制器

在视图控制器之间导航的按钮

ios-如何在项目中添加导航控制器?

在视图控制器之间传递 iOS 10 Segue 中的数据 [重复]

高效地在视图控制器之间切换