我正在创建一个应用程序,默认情况下,它将允许用户在访客或登录状态下使用该应用程序。当用户启动应用程序时,根视图控制器是带有三个选项卡的选项卡栏控制器。要访问选项卡之一的功能,用户必须首先使用电子邮件和密码进行身份验证。当前,当按下选项卡时,将使用推送功能显示登录视图,我不喜欢动画的外观,以及您可以在动画过程中临时看到实际登录视图的事实。>
我尝试将导航控制器添加为选项卡,然后将导航控制器的根视图控制器设置为登录页面,并在登录页面上设置segue(我不喜欢的部分)。取而代之的是,我希望它不会造成干扰,并且显示登录页面的底部带有标签栏,并且当用户登录时,登录页面的显示带有底部标签栏。
这是我的TabController类中的内容:
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
if tabBarController.selectedIndex == 2 {
if AppDelegate.isUserLoggedIn {
let navController : UINavigationController = UINavigationController(rootViewController: self)
navigationController!.show(navController.childViewControllers[0], sender: self)
} else {
let navController = viewController
navController.performSegue(withIdentifier: "testSegue", sender: navController)
}
}
}
我是新手,所以请随时提出任何有益的批评
答案 0 :(得分:0)
假设“ Tab 3”是经过身份验证的标签。
您需要做的是创建一个导航控制器,例如:
let navController = UINavigationController(root: loginController)
如果用户已经通过身份验证,则可以编辑控制器:
navController.viewControllers = [loginController, tabContentViewController]
这样,当用户单击第3个标签时,他会看到登录或“制表3”内容,而没有推送动画