Swift - 从 NavigationController 中的 UIViewController 转到 TabBarController 中的 UIViewController

Posted

技术标签:

【中文标题】Swift - 从 NavigationController 中的 UIViewController 转到 TabBarController 中的 UIViewController【英文标题】:Swift - Segue from UIViewController within NavigationController to UIViewController within TabBarController 【发布时间】:2016-05-10 23:42:28 【问题描述】:

在我的应用程序中,事情从注册流程开始,包括个人资料创建、移动验证和一些进一步的自定义,这些都发生在由 UINavigationController 管理的单独的 UIViewControllers 中。

但是,当注册完成后,我想离开 UINavigationController 并让我的最终注册视图控制器转到应用程序的主 TabBarController

我该怎么做?

【问题讨论】:

【参考方案1】:

当您使用控制多个 UIViewController 的导航控制器时,您使用 push push segues。当您想离开该导航控制器时,您将不得不使用 modal segue。我假设您正在使用情节提要。当您单击并从一个 UIViewController 拖动到下一个时,您选择的是模式而不是推送。

【讨论】:

【参考方案2】:

Segues 对于原型设计很有用,但对于真正的应用程序,我会避免使用 Segues 并以编程方式控制视图控制器的显示。

在您的情况下,您可以将 TabBarController 设为主要入口点,然后检测用户是否已注册,如果没有,则在此之上显示注册序列(模态),当用户完成序列时,只需将其关闭,您将返回 TabBarController。

或者你可以让你的初始视图控制器变成一个空白屏幕,然后决定是显示注册序列还是 TabBarController。

【讨论】:

以上是关于Swift - 从 NavigationController 中的 UIViewController 转到 TabBarController 中的 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

popViewController(animated: true) 动画运行缓慢

iOS应用间相互跳转

从 Swift 3.0 转换为 Swift 2.3

Swift学习: 从Objective-C到Swift

从 swift 2.3 问题迁移到 swift 3.1

将代码从 Swift 2 更改为 swift 4