ios - 如何在 Swift 编程中获得基于导航的模板功能

标签 ios swift uinavigationcontroller uitabbarcontroller pushviewcontroller

我的项目需要一个导航 Controller ,并且我的应用程序最初有一个社交登录。一旦验证通过,用户将被推送到另一个 View ,我在其中显示一个具有 2 个选项卡的 tabbarcontroller。

我不知道如何在 Swift 编程中做到这一点。我已将 View Controller 嵌入到导航 Controller 中,一旦身份验证成功,如何将用户推送到选项卡栏 View ?标签栏还应该有导航。

最佳答案

我想将您的想法复制到我通常在以下示例中所做的事情中。

这就是我的 Storyboard的样子:

enter image description here

如您所见,登录/注册和选项卡栏未与任何类型的 Segue 连接。

此处登录导航 Controller 是初始 Controller 的设置。

为该导航 Controller 分配 Storyboard ID(例如LoginNavigation):

Login NavigationController

对选项卡栏 Controller 执行相同操作,分配 Storyboard ID(例如 HomeTabBar)

TabBarController

现在,您只需在登录导航和选项卡栏之间移动应用程序的 Root View Controller 即可。

因此,如果用户成功登录,请使用以下代码将应用程序的 Root View 更改为 HomeTabBar:

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let home: UITabBarController = storyboard.instantiateViewControllerWithIdentifier("HomeTabBar") as! UITabBarController
appDelegate.window?.rootViewController = home

当用户登录时,再次将 Root View 更改为登录导航:

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let entryPoint:UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("LoginNavigation")
appDelegate.window?.rootViewController = entryPoint

appDelegate 在我的 constants.swift 文件中定义:

let appDelegate  = UIApplication.sharedApplication().delegate as! AppDelegate

关于ios - 如何在 Swift 编程中获得基于导航的模板功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39159444/

相关文章:

iPhone 将 View Controller 向左推

ios - 如何将键盘工具栏添加到 SwiftUI 中的特定文本字段?

ios - 基金会导出

ios - Firestore : How can I correctly order by string with accent characters?

arrays - 将 C 字符串数组转换为 Swift 字符串数组

swift - 如何将 UITableViewCell 的元素限制在导航栏的底部?

ios - 如何使用 objective c 在 iOS 中解析 jsonstring?

iOS Twitter 反向 OAuth

swift - Swiftui 中的汉堡导航菜单幻灯片动画

ios - 如何在 iOS 7 上的 UINavigationController 中禁用向后滑动手势