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

时间:2016-08-26 06:13:08

标签: ios swift uinavigationcontroller uitabbarcontroller pushviewcontroller

我需要一个导航控制器来完成我的项目,我的应用程序最初有一个社交登录。验证身份验证后,用户将被推送到另一个视图,在那里我显示一个带有2个选项卡的tabbarcontroller。

我不知道如何在Swift编程中执行此操作。我已经在导航控制器中嵌入了我的viewcontroller,一旦认证成功,我如何将用户推送到tabbar视图?标签栏也应该有导航。

1 个答案:

答案 0 :(得分:3)

我想将您的想法复制到我通常在以下示例中执行的操作。

这就是我的故事板的样子:

enter image description here

正如您所看到的,登录/注册和标签栏与任何类型的Segue都没有关联。

此处登录导航控制器设置为初始控制器。

为此导航控制器分配故事板ID(例如 LoginNavigation ):

Login NavigationController

使用Tab Bar Controller执行相同的操作,指定Storyboard ID(例如 HomeTabBar

TabBarController

现在,您只需在Login Nav和Tab Bar之间随机播放应用程序的Root View Controller。

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

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

当用户登录时,再次将根视图更改为登录导航

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