在两个UITabBarController之间切换?

时间:2013-06-27 07:43:35

标签: ios uitabbarcontroller uistoryboard

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

2 个答案:

答案 0 :(得分:1)

如果在故事板(身份检查器)中向viewControllers添加Restoration ID,则可以通过调用方法instantiateViewControllerWithIdentifier:来实例化控制器

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

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

然后更改控制器显示。

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

答案 1 :(得分:0)

您可以通过检查此条件将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];