2013-06-27 94 views
1

我正在开发基于故事板的应用程序,我想知道如果我可以有2个TabBarControllers - 一个是用户没有登录,另一个用户登录。我可以交换NotLoggedInTabBarController登录按钮操作LoggedInTabBarController?在两个UITabBarController之间切换?

回答

1

如果你在故事板(身份检查器)中添加一个恢复ID您viewControllers您可以通过调用方法instantiateViewControllerWithIdentifier:

在你的情况实例化一个控制器,也许我将有实例化一个父视图控制器,当想要交换tabBarcontroller,我会叫

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

然后改变控制器显示。

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

+0

添加家长UINavigationController为我的2 TabBarControllers,并试图在Navi上的代码gationController viewDidAppera。没有工作 –

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路由到正确的登录/ notlogged控制器,然后你可以做这样的:

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

viewControlled由TabBarController管理,它没有方法pushViewController –

+0

编辑答案为不使用导航控制器。 – Tala

+0

什么是transitionController? –