Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选项卡栏下的IOS条件视图控制器_Ios_Uitabbarcontroller - Fatal编程技术网

选项卡栏下的IOS条件视图控制器

选项卡栏下的IOS条件视图控制器,ios,uitabbarcontroller,Ios,Uitabbarcontroller,我正在制作一个带有登录系统的应用程序 该选项卡有4个选项卡和一个主选项卡我希望有一个条件子视图控制器,如果用户未登录,它将是一个登录页面,在用户登录的地方,用户将重定向到其他视图控制器 我在tabviewcontroller和tabviewcontroller之间使用了导航控制器 丹尼斯只是想详细解释一下@duci9y说的话。你可以有这样的东西: 在第一个选项卡的实现中: if (!user.loggedIn) { LoginViewController *log

我正在制作一个带有登录系统的应用程序

该选项卡有4个选项卡和一个主选项卡我希望有一个条件子视图控制器,如果用户未登录,它将是一个登录页面,在用户登录的地方,用户将重定向到其他视图控制器

我在tabviewcontroller和tabviewcontroller之间使用了导航控制器


丹尼斯只是想详细解释一下@duci9y说的话。你可以有这样的东西:

在第一个选项卡的实现中:

    if (!user.loggedIn)
    {
        LoginViewController *loginController = [LoginViewController new];
        [self presentViewController:loginController
                           animated:YES
                         completion:nil];
    }
在您的登录视图控制器中

    // once the user has logged in
    [self dismissViewControllerAnimated:YES
                             completion:nil];

我遇到了同样的问题。我的解决办法是:

  • 绘制一个登录视图控制器作为要进行登录的选项卡

  • 绘制另一个视图控制器(在本例中,我使用标识符“train”)

  • 在“登录”选项卡上实现ViewDid:

  • 如果用户已登录,则按下在步骤2中创建的视图控制器。 当然,您需要隐藏导航栏中的“后退”按钮

        override func viewDidAppear(animated: Bool) {
            if Local.HASLOGIN {
              let sb = UIStoryboard(name: "Main", bundle: nil)
              let cont =  sb.instantiateViewControllerWithIdentifier("train") as! TrainViewController
            self.navigationController?.pushViewController(cont, animated: false)
        }}
    

    并不是说这是不可能的,但我认为有一个更简单的方法。在出现任何其他视图之前检查用户是否已登录,然后导航到tabbarcontroller。大多数应用程序都是这样做的。例如,SnapChat。感谢您的快速评论。我对IOS开发相当陌生。我有一些安卓的经验,它是用安卓的碎片来完成的。让所有用户都去标签控制器,并在tab view controller中以模式显示新的设置屏幕。但是,作为您,我应该在IOS中采用什么策略和方法呢suggested@doctordoder我被告知tabbarController永远不应该嵌入到NavigationController中,总是相反。不过我不是很确定?