在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?

Posted

技术标签:

【中文标题】在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?【英文标题】:What is the best way to switch between UIViewControllers without using a navigation controller in storyboard?在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是什么? 【发布时间】:2012-06-27 18:11:21 【问题描述】:

请参考下图 -

我没有使用 NavigationViewController。使用故事板和segues时有没有办法在视图之间切换?我知道另一种方法是使用根视图控制器并以这种方式切换视图。只是想知道是否有其他方法可以做到这一点。

谢谢!

【问题讨论】:

【参考方案1】:

您可以:

    使用导航控制器,但只是隐藏它(在故事板的 Interface Builder 设计中,以及在运行时通过 setNavigationBarHidden:animated: 以编程方式在 viewDidLoad 中)。因此,pushViewController(或简单的推送转场)和popViewController 可以在没有导航栏用户界面的情况下工作。

    使用模态转场(即在幕后使用presentViewControllerAnimated)和dismissViewControllerAnimated

【讨论】:

所以我只需要为segue设置一个标识符并将类型设置为'modal'然后使用[self performSegueWithIdentifier:@"mySegue" sender:sender];对吗? 如果我想回到初始视图怎么办?我需要从第二个视图转回第一个视图吗? (在这种情况下 - 我如何从 LoginSuccessViewController 或 ResgiterSuccessViewController 返回 LoginViewController?) @wackytacky99 只需从相应的确认视图控制器调用dismissViewControllerAnimated【参考方案2】:

它不需要navigationController 来使用segue。只需在 Storyboard 中设置和标识 Segue 的任何地方使用 [self performSegueWithIdentifier:@"mySegue" sender:sender]; 行。

【讨论】:

您仍然需要确定该segue 是push 还是modal segue,对吗?除非你有导航控制器,否则你不能推动。即使你做了一个custom segue,你的自定义代码也需要决定pushViewControllerpresentViewControllerAnimated

以上是关于在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

故事板中的自定义导航控制器

从 AppDelegate 转到 navigationcontroller 故事板中的详细视图

如何从故事板中绘制的现有视图控制器构建导航控制器?

故事板中未显示导航栏

有条件地从 AppDelegate 故事板中的不同位置开始

如何在 xcode 故事板中以横向模式显示场景?