【问题标题】:Switching between two UITabBarController?在两个 UITabBarController 之间切换?
【发布时间】:2013-06-27 07:43:34
【问题描述】:

我正在开发基于故事板的应用程序,我想知道是否可以有 2 个 TabBarController - 一个用于未登录的用户,另一个用于登录的用户。我可以在登录按钮操作时将 NotLoggedInTabBarController 交换为 LoggedInTabBarController 吗?

【问题讨论】:

    标签: ios uitabbarcontroller uistoryboard


    【解决方案1】:

    如果您在情节提要(身份检查器)中的 viewControllers 中添加恢复 ID,则可以通过调用方法 instantiateViewControllerWithIdentifier: 来实例化控制器

    在你的情况下,也许我会实例化一个父视图控制器,当想要交换 tabBarcontroller 时,我会调用

    [parentViewController.storyboard instantiateViewControllerWithIdentifier:@"tabBarController2"];
    

    然后更改显示的控制器。

    (未测试,只是一些想法......)

    【讨论】:

    • 为我的 2 个 TabBarController 添加了父 UINavigationController 并在 NavigationController viewDidAppera 上尝试了您的代码。没用
    【解决方案2】:

    您可以通过检查此条件将 IBAction 添加到您的按钮并实例化所需的控制器。

    ViewController *viewController = nil;
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    YourViewController *viewController = nil;
    if ([userManager isLoggedIn]) {
         viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LoggedInViewControllerIdentifier"];
    } else {
         viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"NotLoggedInViewControllerIdentifier"];
    }
    [self.navigationController pushViewController:viewController animated:YES];
    

    在您的故事板中,您必须在身份检查器中设置故事板 ID

    编辑

    如果您没有使用 navigationController 来路由到正确的记录/未记录控制器,那么您可以这样做:

    MyAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
    [appDelegate.transitionController transitionToViewController:viewController
                                                     withOptions:UIViewAnimationOptionTransitionFlipFromRight];
    

    【讨论】:

    • viewControlled 由没有方法 pushViewController 的 TabBarController 管理
    • transitionController 是什么?
    • 必须有一个显示的视图控制器(您决定接下来显示什么)。随意命名 - 你拥有它并调用 transitionToViewController
    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2018-04-13
    相关资源
    最近更新 更多